2022

This is a deprecated version of the SnowConvert documentation, please visit the official site HERE.

Release 2.0.264 - December 19th, 2022

SnowConvert Core 13.0.16

Added

  • Translation for function DB_NAME

  • Translation for function SYSUTCDATETIME

  • Translation of CAST parameter used to style format from date to string

Fixed

  • The result of the AT TIME ZONE is different in the .csv of SQL Server and the .csv of Snowflake

  • ALTER TABLE ADD COLUMN CONSTRAINT adds invalid IF EXISTS statement

  • Fix to be inline as the date to string CAST documentation

Release 2.0.259 - December 12th, 2022

SnowConvert Core 12.0.0

Added

  • CTE + INSERT has an incorrect conversion

  • Stabilize using Elements Report Category/GrammarElement resolvers

  • Generate object breakdown section in HTML Conversion Report

  • Generate File breakdown section in HTML Conversion Report

Fixed

  • Reduce procedure exceptions in some customer workloads

  • EWI1040 is displayed but it should display EWI4063

  • Regression due to SQL Changes in DotDouble Operator

  • Stackoverflow migrating ALTER TABLE ADD CONSTRAINT

Release 2.0.246 - November 21st, 2022

SnowConvert Core 11.0.108

Added

  • Procedures with unsupported options gives 0 % conversion rate

  • Translate OPENXML table valued function

  • Add a footer to HTML Conversion Report

  • Generate File breakdown section in HTML Conversion Report

Fixed

  • Function should be preserved as Function

  • Cast issues for date/time not correctly converted

  • Some generated Javascript function is invalid

  • Date & Time functions do not work properly

  • Exception in CREATE TABLE statement

Release 2.0.235 - November 10th, 2022

SnowConvert Core 11.0.62

Added

  • Support for GETUTCDATE function

  • Translation of Output parameter should be declared and returned

  • Generate overall conversion summary section in HTML Conversion Report

  • Generate issues breakdown section in HTML Conversion Report

Fixed

  • FORMATMESSAGE Function Not Supported

  • Functions defined in the code are generating EWI1031 when referenced

  • SQL N strings are lost inside some Store Procedures

  • Function Generated Javascript but it should be using the Target language selected

Release 2.0.218 - October 24th, 2022

SnowConvert Core 10.0.0

Added

  • Remove Cartesian Product from the UPDATE statement

  • Create a UDF function equivalent to xplogininfo

  • Transform Bitwise operations

  • Translate Expression AT TIME ZONE

  • Translate CTE in SELECT and CREATE VIEW

Fixed

  • Cast issues for date/time not correctly converted

  • Ewis and expected code were not generated according to ALTER TABLE documentation

  • File not generated with XP_LOGININFO in INSERT

  • The table Named with @ should be replaced by T_ and the temporary table

  • Parsing error for MERGE @Table statement

Release 2.0.200 - October 10th, 2022

SnowConvert Core 9.2.72

Added

  • [Alter Table] Function SWITCHOFFSET must be converted

  • [Alter Table] Parse ALTER TABLE data type

  • [Alter Table] Save ALTER TABLE default values to a CREATE TABLE statement

  • [UI] Change DBObject Name Conversion Setting text and default option to NONE

Fixed

  • Comments lost in the header of procedures

  • TopLevelQueries were not generated when only dynamic SQL queries

Release 2.0.173 - September 26th, 2022

SnowConvert Core 9.2.6

Added

  • [Alter Table] [Translation] IDENTITY column option

  • [Alter Table] Enable transformation for MEF default constraints collected

  • [Alter Table] [Translation] SPARSE column option

Fixed

  • Division of integer values must add trunc function

  • Binary expression '+' must be converted to || Snowflake concatenation

Release 2.0.156 - September 12th, 2022

SnowConvert Core 9.0.37

Added

  • Data types should be converted properly

Fixed

  • DATEADD and DATEDIFF are giving issues converted together

  • Function EOMONTH should be appropriately converted

  • Store procedures Header comments are not added in the correct location

  • Unexpected 'AS' for incorrect transformation of DATE_PART

Release 2.0.130 - August 29th, 2022

SnowConvert Core 7.11.122

Added

  • Translate MASKED WITH (FUNCTION = 'mask_function')

  • Create more specific EWI for unsupported types

  • [UDF] Transform User Defined Functions with Nested IF depth greater than 1

  • Translation for unsupported Table Elements within ALTER TABLE

Fixed

  • Missing SELECT helper in a stored procedure

Release 2.0.112 - August 16th, 2022

SnowConvert Core 7.11.83

Added

  • Translate scope_identity function

  • Transform ALTER TABLE Default Constraint using CREATE TABLE statement

  • Refactor TSqlsStat AST

Fixed

  • Some duplicated procedure names with no schema are lost during arrange preprocess

  • Added cast to return value when return type should be DATE

Release 2.0.95 - August 3rd, 2022

SnowConvert Core 7.11.47

Added

  • Translate DEFAULT property in ALTER TABLE statement

  • Remove ALTER TABLE unsupported table options

Release 2.0.89 - August 1st, 2022

SnowConvert Core 7.11.22

Added

  • Translate SET statements inside IF/ELSE blocks

  • Translate SELECT statements inside IF/ELSE blocks

  • Parse ALTER TABLE rebuild option

  • Remove ALTER TABLE column constraint options

Fixed

  • Arrange with the pretty print flag causes an exception

  • Dates expressed by numbers are not converted properly

  • Scalar function transformed to procedure instead of Snowflake function

Release 2.0.73 - July 18th, 2022

SnowConvert Core 7.9.154

Added

  • Robustness on the parser for ALTER TABLE statement

Fixed

  • User-defined function transformed to stored procedure instead of user-defined function

Release 2.0.70 - July 12th, 2022

SnowConvert Core 7.9.130

Added

  • [Snowflake Scripting] Transformation for variable assignment in SELECT

Fixed

  • Preserve comments above the DDLs definition

  • Input parameter argument binding

Release 2.0.61 - July 4th, 2022

SnowConvert Core 7.9.95

Added

  • Robustness on the parser for ALTER TABLES

  • Translation for DECLARE statements inside IF/ELSE blocks inside user-defined functions. See also MSCEWI4049.

  • Preprocessing for ALTER TABLE statement.

Fixed:

  • Body not generated in several user-defined functions.

  • Temporal table name reference in update statement.

  • Parameters references in SELECT queries that use columns with the same names.

Release 2.0.38 - Jun 21th, 2022

SnowConvert Core 7.9.34

Added

Lines of code conversion rate mode is now available.

By default, the conversion rate is calculated per character transformed for more precision. Now, the user can select how this calculation is done by choosing between lines of code or characters.

Fixed:

  • Deployment issue on TEMPORARY tables without OR REPLACE keyword

  • Translated statements without semicolon in Snowflake Scripting

Release 2.0.21 - Jun 7th, 2022

SnowConvert Core 7.3.0

Added:

  • Warning for not supported statements that should be commented out.

  • MSCEWI4048 for ALTER TABLE statements

  • Transformation for RAISERROR in Snowflake Scripting

  • New EULA file with an updated version

Fixed:

  • Parsing exception in macOS

Release 2.0.6 - May 25th, 2022

SnowConvert Core 7.2.6

Added:

  • General improvements on the Pretty Print performance and output code

  • Transformation for DATEFIRST variable in Snowflake Scripting

  • Functional equivalence review (removed MSCEWI1046) for built-in functions such as:

    • COALESCE

    • COUNT

    • LAG

    • AVG

    • SPACE

    • DENSE_RANK

    • LOWER

    • REVERSE

    • FIRST_VALUE

    • FLOOR

    • SIGN

    • SQUARE

    • USER_NAME

    • LEAD

    • EXP

    • LAST_VALUE

    • CONCAT_WS

    • LOG

    • ASCII

    • RAND

    • ISJSON

    • COS

    • PERCENTILE_DISC

    • SIN

    • GROUPING

    • ACOS

    • NTILE

    • UNICODE

    • RADIANS

    • SOUNDEX

Fixed:

  • Transformation for User Defined Functions calls marked as errors.

  • Transformation for TOP clause with parenthesis.

Version 2.0.6 of SnowConvert for SQL Server is not available in macOS

Release 1.5.77 - May 10th, 2022

SnowConvert Core 5.0.132

Added:

  • Transformation for multiple return statements inside User Defined Functions

  • Transformation for IS_MEMBER conversion

  • Functional equivalence review (removed MSCEWI1046) for built-in functions such as:

    • CONCAT

    • COUNT_BIG

    • DATALENGTH

    • DATEDIFF

    • DATEFROMPARTS

    • DATENAME

    • EOMONTH

    • GETDATE

    • ISDATE

    • ISNULL

    • LEFT

    • LEN

    • LTRIM

    • MAX

    • MIN

    • NEWID

    • NULLIF

    • PATINDEX

    • POWER

    • RANK

    • REPLACE

    • REPLICATE

    • RIGHT

    • ROW_NUMBER

    • DATEADD

    • SUM

Fixed:

  • Transformation for INSERT statement without INTO clause

  • Transformation for User Defined Functions to Stored Procedures without helpers

  • Transformation for IIF function that was wrongly mapped

  • Comment out default value for BINARY column definitions

Release 1.5.56 - April 25th, 2022

SnowConvert Core 5.0.88

Added:

  • Improvements to code preprocessing documentation in UI

Fixed:

  • NUMBER datatypes with no scale transformation

Release 1.5.41 - April 12th, 2022

SnowConvert Core 5.0.71

Added:

Fixed:

  • HTML assessment report generation

Release 1.5.19 - March 28th, 2022

SnowConvert Core 5.0.35

Added:

  • Procedures target transformation to Snowflake Scripting (UI and CLI)

  • Transformation for supported SYSTEM TABLES. See also MSCEWI4046

  • Transformation for OBJECT_NAME function inside Stored Procedures

  • Transformation for ODBC NOW function

  • Robustness on the parser for CREATE PROCEDURES

Fixed:

  • Transformation for multiple declarations in user defined functions

  • Transformation for user defined functions with body not generated

Release 1.4.140 - March 14th, 2022

SnowConvert Core 4.0.108

Added:

  • Transformation for User Defined Functions with multiple IF statements without the ELSE clause

  • Transformation for User Defined Functions with variable self assignment pattern inside SELECT statements (only applies to SELECT Statements without the FROM clause)

  • Transformation for multiple return statements inside User Defined Functions (only applies to functions without statements transformed to Common Table Expressions)

  • Robustness on parser in Stored Procedures

Release 1.4.140 - March 14th, 2022

SnowConvert Core 4.0.108

Added:

  • Transformation for User Defined Functions with multiple IF statements without the ELSE clause

  • Transformation for User Defined Functions with variable self assignment pattern inside SELECT statements (only applies to SELECT Statements without the FROM clause)

  • Transformation for multiple return statements inside User Defined Functions (only applies to functions without statements transformed to Common Table Expressions)

  • Robustness on parser in Stored Procedures

Release 1.4.117 - February 28th, 2022

SnowConvert Core 4.0.60

Added

  • UnrecognizedElementsLOC to Assessment.docx and Assessment.csv

Release 1.4.98 - February 14th, 2022

SnowConvert Core 4.0.33

Added

  • Transformation for basic IF statement inside user defined functions

  • IMMUTABLE keyword to all generated UDF helpers

  • Glossary section of the main concepts in the Assessment.docx report

  • Hierarchy-oriented naming in the ObjectDB column of the Top-level objects report and Top-level queries report. Check here for more information

  • Added 2 precision decimals to the conversion rates of the assessment reports to improve precision

Fixed

  • Thrown exception while translate names with special characters

  • Thrown exception inside Table-Valued function with qualified name

  • Empty object names in the Top-level objects report

Release 1.4.74 - February 1st, 2022

SnowConvert Core 3.2.86

Added

  • Improved transformations for CURRENT_DATE and DATE_PART

  • Parsing improvements for AUTO keyword, FROM clause and WITH alias

  • Several improvements to UDFs translations, including:

    • Add cast to columns inside union all when semantic information was not found

    • Add warning to function expressions identified as user-defined functions

    • Translation for parameter usages inside queries in inline table valued functions

    • Support for semicolons inside SQL functions

Fixed

  • Exception in OBJECT_ID with non string parameter

  • Exception in SET with square brackets with blank space in update clause

  • Several MSCEWI1013 instances

  • CURSOR error when the result is only 1 row

Release 1.4.58 - January 18th, 2022

SnowConvert Core 3.2.67

Added

  • Transformation for user-defined functions with SET and DECLARE statements

  • Transformation for variable assignment using SELECT inside user-defined functions

  • Transformation for user-defined function calls inside STORED PROCEDURES

  • Transformation for BITWISE operators

  • Improvements on Object Conversion rate assessment

Fixed

  • Transformation for queries getting MERGE ACTION count from OUTPUT inside STORED PROCEDURES

  • Transformation for WITH statement with multiple COMMON TABLE EXPRESSIONS

  • Transformation for CURRENT_TIMESTAMP

  • Transformation for BULK INSERT inside dynamic SQL

  • Transformation for SELECT setting multiple variables

  • Thrown exception while transforming identifiers with square brackets

Release 1.4.32 - January 3rd, 2022

SnowConvert Core 3.2.34

Added

  • Transformation for OUTER APPLY clause.

  • Accuracy improvements on Assessment Object conversion rate.

  • Transformation for User-Defined functions that can only be translated to Stored Procedures

  • Robustness on parser on SELECT statements.

Fixed

  • Invalid transformation for GETDATE()

  • Thrown exception on maintain folder structure flag while preprocessing the code

Release 1.4.1 - December 22nd, 2021

SnowConvert Core 3.2.16

Added

  • Robustness on parser on SELECT statements.

  • Code preprocess before converting the source code. Learn more

  • Accuracy improvements on Assessment.

Fixed

  • Cursor error when the result is only 1 row inside Stored Procedures

  • Unhandled exception while converting OBJECT_ID

  • Transformation for temporal (#) tables

  • Unhandled exception while converting aliases with special characters or spaces.

  • Unhandled exception while converting MERGE statements

Release 1.3.4 - December 7th, 2021

SnowConvert Core 3.1.43

Fixed

  • Transformation for ISDATE function

  • Transformation for PATINDEX function

  • Transformation for string concatenation using +

Release 1.3.3 - November 22nd, 2021

SnowConvert Core 3.1.24

Added

Fixed

  • Transformation for MONEY and SMALLMONEY

  • Transformation for TABLE datatype in stored procedures

  • Error on SELECT helper

  • Transformation for addition assignment operators (+=, -=)

  • Transformation for UPDATE statements using the table alias as target

  • Comments lost during stored procedures transformation.

Release 1.3.1 - November 8th, 2021

SnowConvert Core 3.1.20

Added

  • Count of User Defined Functions inside and outside queries

  • Assessment section for User Defined Functions

  • Transformation for @@ROWCOUNT function

Fixed

  • Exception thrown while generating the HTML report

  • Transformation for DECLARE statements with scalar default value

  • Transformation for Common Table Expressions with Delete statement removing duplicates

Release 1.3.0 - October 25th, 2021

SnowConvert Core 3.1.11

Added

  • Robustness on the parser for CREATE PROCEDURES

  • Parsing and basic Assessment for CREATE FUNCTION

  • Object conversion rate for each identified object.

Fixed

  • Exception that was causing a file not to be generated

  • Transformation for variable declaration inside labels

  • Transformation for ROW_NUMBER with partition

Release 1.2.1 - October 11th, 2021

SnowConvert Core 3.1.9

Added

  • Robustness on the parser for CREATE PROCEDURES

  • Transformation for BULK INSERT statements

  • Transformation for object_id inside IF statements

  • Transformation for object_schema_name(@ObjectId, @DatabaseId)

  • Transformation for object_name(@ObjectId, @DatabaseId)

  • Transformation for modulo (%) operations in IF conditions

  • Transformation for WAITFOR statements

  • Transformation for empty statements inside Stored Procedures

  • Transformation for ERROR_SEVERITY function

Fixed

  • Transformation for double-dot qualifiers. Example:

Input

select * from db..table1

Output

select * from db.dbo.table1

  • Comment objects with missing dependencies

  • Inconsistent Total Issues value on UI vs Assessment report

  • Custom database and schema options not working in the UI

  • Disabling EWI comments generation in some cases

  • Transformation for Procedures inside Unicode literals

Release 1.2.0 - September 28th, 2021

SnowConvert Core 3.1.8

Added

Fixed

  • Translation for CROSS APPLY

  • Translation for NLiteral expressions inside SELECT statements

  • Translation for IDENTITY with default values

  • Translation for UPDATE statements with JOIN clauses

  • Translation for SELECT INTO used in COMMON TABLE EXPRESSION

Release 1.1.17 - September 14th, 2021

SnowConvert Core 3.1.3

Added

  • Robustness on the parser for CREATE VIEW and CREATE PROCEDURES

  • Translation for CASE Expressions and built-In functions calls inside procedures.

  • Translation for BREAK statement.

  • Translation for supported ODBC SCALAR FUNCTIONS.

  • Translation for SELECT @LOCAL_VARIABLE.

  • Missing dependencies warning to views without their dependencies in the source code.

  • Regions for PROCEDURES helpers.

  • Warning for MASKED columns.

Fixed

  • EXISTS translation in order to use the Snowflake built-in.

Release 1.1.16 - August 31st, 2021

SnowConvert Core 3.1.1

Added

  • Robustness on the parser for CREATE TABLE , CREATE VIEW and CREATE PROCEDURES

  • Assessment Accuracy Improvements:

    • Parsing errors count on output code and issues csv file.

    • Differentiation between warnings and errors count.

    • Warnings to some transformations properly added.

  • Built-In functions translation:

    • CONVERT

    • COALESCE

    • ISNUMERIC

    • QUOTENAME

    • USER_NAME

    • SOUNDEX

    • DATEPART

    • DATENAME

    • NEWID

    • PATINDEX

    • FORMAT

    • PARSENAME

    • STUFF

    • DATABASE_PRINCIPAL_ID

  • Translation for sysname , datetimeoffset , NChar , NText , sql_variant and timestamp data types

  • Translation for computed columns

Fixed

  • Translation for identity columns with negative values.

Release 1.1.15 - August 18th, 2021

Fixed

  • The confirmation pop-up window for canceling the migration process is not displayed correctly.

Release 1.1.14 - August 16th, 2021

SnowConvert Core 3.1.0

Added

  • Assessment Accuracy Improvements.

  • Empty square brackets can now being parsed as column definition.

  • CONSTRAINT PRIMARY KEY is now being properly translated.

  • Top Level object report Generated.

  • Default Parameters in Procedures now supported.

  • Support Column names with reserved or special keywords.

  • Assignments of the EXEC helper refactored to be more accurate to the source code.

  • XML, Image, SMALLDATETIME and UNIQUEIDENTIFIER types now supported on translations.

Fixed

  • Invalid keywords are no longer kept in the table DDL.

  • Fixed StackOverflowException on MAC that caused the application to failed with error or log message.

  • Fixed error where Hexadecimal values caused errors when contained inside procedures.

Release 1.1.12 - August 4th, 2021

SnowConvert Core 3.0.22

Added

  • Better error handling for:

    • Unicode Literal failed transformations (Accurate EWI is now displayed)

  • Parser robustness for:

    • GO command

    • OPEN GLOBAL

    • CLOSE GLOBAL

    • Files starting with invalid text (Not with SQL comments or SQL grammar elements)

  • Translation for:

    • LIKE

    • NOT LIKE

Fixed

  • Warnings added for SEQUENCE not being accurately counted.

  • Inconsistencies shown in assessment information between identical runs of the tool for some workloads.

  • Exception occurring during SELECT INTO transformation.

Release 1.1.11 - July 19th, 2021

SnowConvert Core 3.0.20

Added

  • Improved Assessment Accuracy for:

    • Declare Statements in procedures.

    • If Statements.

    • Cursor Statements.

    • Merge Statements.

  • Translate statement SELECT INTO TableName .

  • Translate statements in Create Procedure:

    • Identity Column.

    • Column names with operators.

  • Disclaimer for SQL Identified objects and SQL Files conversion rate.

Fixed

  • EXECcall not being generated in the output.

  • SnowConvert conversion loop for certain store procedures.

  • Error migrating views and code being removed.

  • Translation of negative values being translated to positive values.

  • NOT EXISTS is being translated as EXISTS.

  • Inconsistencies in Assessment Accuracy conversion rate.

  • DefaultExpression should be counted as an error and affect the conversion rate.

  • MSC-ISSUE renamed to MSC-ERROR in all the reports.

Release 1.1.10 - July 6th, 2021

SnowConvert Core 3.0.16

Added

  • Robustness on the parser for CREATE TABLE , CREATE VIEW and CREATE PROCEDURES

  • Translate basic statements in CREATE PROCEDURES such as:

    • Translate BEGIN TRANSACTION statement

    • Translate COMMIT statement

    • Translate for ROLLBACK and ROLLBACK TRANSACTION statement

    • Translate THROW statement

    • Translate INSERT INTO EXEC

  • Translate Temporal Tables

  • Translate for EXECUTE Statement and N Literal

  • Translate of CREATE PROCEDURE AS OWNER

  • Translate built-in functions that have equivalence in Snowflake

  • Translate TRUNCATE Statement

  • Translate DROP TABLE statement

  • Telemetry for assessment

Release 1.1.9 - June 22nd, 2021

SnowConvert Core 3.0.13

Added

  • Robustness on the parser for CREATE TABLE , CREATE VIEW and CREATE PROCEDURES

  • Translate basic statements in CREATE PROCEDURE such as:

    • Translate EXECUTE/EXEC statement

    • Translate embedded CREATE TABLE statement

  • Translate basic predicates such as:

    • BETWEEN Predicate

    • EXISTS Predicate

    • IN Predicate

  • Translate WITH Clauses in CREATE TABLE

  • Translate Cursor DECLARE, OPEN, FETCH, CLOSE and DEALLOCATE

Release 1.1.5 - June 9th, 2021

SnowConvert Core 3.0.9

Added

  • Robustness on the parser for CREATE TABLE , CREATE VIEW and CREATE PROCEDURES

Release 1.1.3 - May 25th, 2021

SnowConvert Core 3.0.5

Added

  • Translated basic CREATE PROCEDURE

  • Translate basic statements in CREATE PROCEDURE such as:

    • DECLARE @variable

    • SET @variable

    • TRY CATCH Statement

    • IF Statement

    • While Statement

    • RETURN Statement

    • SELECT, UPDATE, INSERT, DELETE and MERGE.

  • Translate basic expressions in CREATE PROCEDURE such as:

    • IS NULL / IS NOT NULL predicate

    • BINARY Operations ( +, -, *, / )

    • Comparisons ( >,<, <=, >= )

In order to try out the newly added translation features, you can use this example code and migrate this example with SQLServer SnowConvert.

CREATE PROCEDURE Procedure1(
    @model_year SMALLINT,
    @FirstName NVARCHAR(50),
    @Age INT,
    @Balance SMALLMONEY,
    @Description VARCHAR
) AS 
BEGIN
    DECLARE @cursor_db CURSOR;
    DECLARE @database_id INT, @database_name VARCHAR(255);
    DECLARE @product_list VARCHAR(MAX) = ' ';
    DECLARE @Variable1 AS VARCHAR(100), @Variable2 AS VARCHAR(100);
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
    SET NOCOUNT ON
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    SET NOCOUNT OFF
    SET @product_list = '';
    SET @var1 += '';
    SET @var2 &= '';
    SET @var3 ^= '';
    SET @var4 |= '';
    SET @var5 /= '';
    SET @var6 %= '';
    SET @var7 *= '';
    SET @var8 -= '';
    SET @statement = 'SELECT * FROM TABLE1 WHERE COL1 = '+@param1+ ' AND COL2 = ' + @param2;

    BEGIN TRY
        IF @Age > 15
            return
        ELSE
            return 2;
        
        WHILE (@PATITO < 2)
        BEGIN
            SELECT * FROM TABLE1;
        END;

        INSERT INTO TABLE1 VALUES (1,2,3, @param1);
        DELETE dbo.Table2 FROM dbo.Table2 INNER JOIN dbo.Table1 ON (dbo.Table2.ColA = dbo.Table1.ColA) WHERE @ColA = 1;
        Update PruebaUpdate Set Col1 = 5;
    END TRY
    BEGIN CATCH
        return -1;
    END CATCH
END;
GO

Release 1.1.2 - May 14th, 2021

SnowConvert Core 3.0.3

Added

  • Translate Tables

  • Translate Views

  • Assessment Report for Tables and Views

Known issue: you may get some error in the UI if you try to migrate Procedures and Functions

Last updated