2022
Last updated
Last updated
This is a deprecated version of the SnowConvert documentation, please visit the official site .
Translation for function DB_NAME
Translation for function SYSUTCDATETIME
Translation of CAST parameter used to style format from date to string
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
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
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
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
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
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
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
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
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
[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
Comments lost in the header of procedures
TopLevelQueries were not generated when only dynamic SQL queries
[Alter Table] [Translation] IDENTITY column option
[Alter Table] Enable transformation for MEF default constraints collected
[Alter Table] [Translation] SPARSE column option
Division of integer values must add trunc function
Binary expression '+' must be converted to || Snowflake concatenation
Data types should be converted properly
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
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
Missing SELECT helper in a stored procedure
Translate scope_identity
function
Transform ALTER TABLE
Default Constraint using CREATE TABLE
statement
Refactor TSqlsStat AST
Some duplicated procedure names with no schema are lost during arrange preprocess
Added cast to return value when return type should be DATE
Translate DEFAULT
property in ALTER TABLE
statement
Remove ALTER TABLE
unsupported table options
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
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
Robustness on the parser for ALTER TABLE
statement
User-defined function transformed to stored procedure instead of user-defined function
[Snowflake Scripting] Transformation for variable assignment in SELECT
Preserve comments above the DDLs definition
Input parameter argument binding
Robustness on the parser for ALTER TABLES
Preprocessing for ALTER TABLE
statement.
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.
Deployment issue on TEMPORARY
tables without OR REPLACE
keyword
Translated statements without semicolon in Snowflake Scripting
Warning for not supported statements that should be commented out.
New EULA file with an updated version
Parsing exception in macOS
General improvements on the Pretty Print performance and output code
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
Transformation for User Defined Functions calls marked as errors.
Version 2.0.6
of SnowConvert for SQL Server is not available in macOS
Transformation for multiple return statements inside User Defined Functions
Transformation for IS_MEMBER
conversion
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
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
Improvements to code preprocessing documentation in UI
NUMBER
datatypes with no scale transformation
Functional equivalence review for built-in functions such as:
HTML assessment report generation
Procedures target transformation to Snowflake Scripting (UI and CLI)
Robustness on the parser for CREATE PROCEDURES
Transformation for multiple declarations in user defined functions
Transformation for user defined functions with body not generated
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
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
UnrecognizedElementsLOC to Assessment.docx and Assessment.csv
Transformation for basic IF
statement inside user defined functions
Warnings for:
IMMUTABLE
keyword to all generated UDF helpers
Glossary section of the main concepts in the Assessment.docx report
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
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
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
Improvements on Object Conversion rate assessment
Fixed
Transformation for WITH
statement with multiple COMMON TABLE EXPRESSIONS
Transformation for SELECT setting multiple variables
Thrown exception while transforming identifiers with square brackets
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
Thrown exception on maintain folder structure flag while preprocessing the code
Robustness on parser on SELECT
statements.
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
Fixed
Transformation for string concatenation using +
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.
Added
Count of User Defined Functions inside and outside queries
Assessment section for User Defined Functions
Fixed
Exception thrown while generating the HTML report
Transformation for DECLARE
statements with scalar default value
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
Added
Robustness on the parser for CREATE PROCEDURES
Transformation for modulo (%) operations in IF conditions
Transformation for empty statements inside Stored Procedures
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
Added
Robustness on the parser for CREATE PROCEDURES
Translation for error functions such as:
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
Added
Robustness on the parser for CREATE VIEW
and CREATE PROCEDURES
Translation for BREAK
statement.
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.
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.
Fixed
The confirmation pop-up window for canceling the migration process is not displayed correctly.
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.
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
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.
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
EXEC
call 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.
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
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
Robustness on the parser for CREATE TABLE
, CREATE VIEW
and CREATE PROCEDURES
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.
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
Translation for DECLARE
statements inside IF/ELSE
blocks inside user-defined functions. See also .
for ALTER TABLE
statements
Transformation for in Snowflake Scripting
Transformation for variable in Snowflake Scripting
Functional equivalence review (removed ) for built-in functions such as:
Transformation for clause with parenthesis.
Functional equivalence review (removed ) for built-in functions such as:
Transformation for inside User Defined Functions
Transformation for inside User Defined Functions
Transformation for function
Transformation for supported . See also
Transformation for function inside Stored Procedures
Transformation for NOW function
Hierarchy-oriented naming in the ObjectDB column of the Top-level objects report and Top-level queries report.
Transformation for
Transformation for operators
Transformation for queries getting MERGE ACTION
count from inside STORED PROCEDURES
Transformation for
Transformation for inside dynamic SQL
Invalid transformation for
Code preprocess before converting the source code.
Transformation for function
Transformation for function
Transformation for and function
Transformation for function
Transformation for function
Transformation for with Delete statement removing duplicates
Transformation for with partition
Transformation for statements
Transformation for inside IF statements
Transformation for (@ObjectId, @DatabaseId)
Transformation for (@ObjectId, @DatabaseId)
Transformation for statements
Transformation for function
Translation for
Translation for
Translation for statement.
Translation for function with object_type
argument specified.
Translation for function
Warning for not supported statement.
Translation for using DELETE
, UPDATE
or INSERT
New Logo for SnowConvert and minor UI update (some colors changed). New images are displayed in the section.
Translation for SELECT INTO
used in
Translation for Expressions and built-In functions calls inside procedures.
Translation for supported .
Translation for .
Warning for .