SnowConvert AI - SQL Server-Azure Synapse 문제¶
Applies to
SQL 서버
Azure Synapse Analytics
Sybase
SSC-EWI-TS0001¶
사용자 정의 함수 본문이 생성되지 않습니다
심각도¶
중요
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 SnowConvert AI가 변환 중에 함수 본문이 생성되지 못하게 하는 중요한 예외를 처리할 때 표시됩니다.
코드 예시¶
SQL 서버¶
Snowflake¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0002¶
ANSI_PADDING OFF는 Snowflake에서 지원되지 않습니다.
심각도¶
낮음
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
In SQL Server, SET ANSI_PADDING controls how trailing blanks are stored in CHAR, VARCHAR, BINARY, and VARBINARY columns. When SET ANSI_PADDING OFF is active during a CREATE TABLE or ALTER TABLE statement, SQL Server records this setting as a column-level property on each column defined in that scope. This means the trimming behavior is permanently associated with the column definition, regardless of the session setting at the time data is inserted.
Specifically, when a column is created with ANSI_PADDING OFF:
VARCHARcolumns have trailing blanks trimmed on insert.VARBINARYcolumns have trailing zeros trimmed on insert.CHARcolumns are trimmed of trailing blanks (instead of being right-padded to the defined length).
Snowflake has no equivalent column-level property. Snowflake always preserves trailing spaces in string values (equivalent to ANSI_PADDING ON). There is no way to configure a Snowflake column to automatically trim trailing blanks on insert.
Since this is a storage-level semantic difference that cannot be automatically translated, SnowConvert AI flags the statement with this EWI.
코드 예시¶
SQL 서버¶
Snowflake¶
Limitations¶
Snowflake does not support ANSI_PADDING OFF semantics at any level (session, database, or column).
Wrapping inserts with
RTRIM: This only handles explicitINSERTstatements in the migrated code. It does not cover data loaded through ETL pipelines, external tools, or application code that also relied on the column’sANSI_PADDING OFFproperty.Session-level setting: Snowflake has no session parameter equivalent to
SET ANSI_PADDING.Column-level constraint or default: Snowflake does not allow defining a column property that automatically trims trailing spaces.
To fully replicate ANSI_PADDING OFF behavior in Snowflake, manual intervention is required at the data pipeline level for every affected column.
모범 사례¶
Identify all columns that were created under
SET ANSI_PADDING OFFin the source SQL Server database. You can querysys.columnswithis_ansi_padded = 0to find them.For each affected column, ensure that all data insertion paths (SQL scripts, ETL pipelines, application code) apply
RTRIMbefore inserting into the corresponding Snowflake column.Consider creating a Snowflake stored procedure or UDF wrapper that enforces trimming for the affected columns.
Review whether the trimming behavior is actually relied upon by downstream consumers. In some cases,
ANSI_PADDING OFFwas set by default in legacy scripts without the application depending on the trimming behavior.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0003¶
ANSI_WARNINGS OFF는 Snowflake에서 지원되지 않습니다.
심각도¶
낮음
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
Transact-SQL에서 SET ANSI_WARNINGS OFF 문은 0으로 나누기 또는 산술 오버플로와 같은 경고를 비활성화합니다. SET ANSI_WARNINGS OFF는 Snowflake에서 직접 구성할 수 있는 설정이 아니므로 SnowConvert AI는 이 EWI를 생성합니다.
코드 예시¶
SQL 서버¶
Snowflake¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0009¶
다음 트랜잭션에는 중첩 트랜잭션이 포함될 수 있으며 이는 Snowflake에서 지원되지 않는 복잡한 패턴으로 간주됩니다.
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
심각도¶
높음
설명¶
이 오류는 트랜잭션에 중첩 트랜잭션이 포함될 수 있음을 알리기 위해 추가됩니다. SQL Server에서는 트랜잭션을 중첩할 수 있습니다. 즉, 기존 트랜잭션 내에서 새 트랜잭션을 시작할 수 있습니다. 첫 번째 BEGIN 문 이후에 다른 트랜잭션을 실행하면 새 트랜잭션이 열리고 현재 트랜잭션 수가 1씩 증가합니다.\
반면, Snowflake에서는 이 기능이 지원되지 않습니다. 두 번째 BEGIN 문은 무시되며 여전히 하나의 트랜잭션만 남게 됩니다. 자세한 내용은 [SQL Server 트랜잭션]https://learn.microsoft.com/en-us/sql/t-sql/language-elements/transactions-transact-sql?view=sql-server-ver16)을 참조하세요.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
Snowflake에서 중첩 트랜잭션은 컴파일 오류를 일으키지 않으며 단순히 무시됩니다. 평가 보고서에 액세스하여 중첩 트랜잭션이 있는지 확인할 수 있습니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0010¶
뷰의 공통 테이블 식은 Snowflake에서 지원되지 않습니다.
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
심각도¶
높음
설명¶
이 오류는 뷰의 내부에 유효하지 않은 CTE가 있는 경우에 추가됩니다. 뷰는 쿼리의 구체화된 표현이므로, 뷰는 데이터를 검색하고 표시하는 방법만 정의하며 데이터를 조작하는 방법은 정의하지 않습니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
관련 EWI¶
SSC-EWI-0021: 지원되지 않습니다.
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0013¶
계산된 열이 변환되었습니다
참고
이 EWI는 더 이상 사용되지 않습니다. SSC-FDM-TS0013 설명서를 참조하세요.
심각도¶
낮음
설명¶
이 경고는 SQL Server의 계산된 열이 Snowflake에서 상응하는 열로 변환되는 경우에 추가됩니다. 경우에 따라 기능적 동등성에 영향을 미칠 수 있기 때문에 이 경고가 추가됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 사용자 작업이 필요하지 않습니다. 이는 단지 정보 제공용입니다.
변환되지 않은 식에 수동 변경 사항을 추가합니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0015¶
데이터 타입은 Snowflake에서 지원되지 않습니다
심각도¶
Medium
설명¶
이 경고는 SQL Server 열에 Snowflake에서 지원되지 않는 유형이 있는 경우에 추가됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
Snowflake 데이터 타입 설명서에서 해당 데이터 타입에 해당하는 항목을 찾습니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0016¶
ODBC 스칼라 함수에 대한 변환이 보류 중입니다
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 SnowConvert AI가 입력 코드 내부에서 ODBC 스칼라 함수를 발견한 경우에 추가됩니다.\ 사용자 정의 함수는 ODBC 스칼라 함수에서 지원되지 않습니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
관련 EWI¶
SSC-EWI-0073: 기능적 동등성 검토가 보류 중입니다.
모범 사례¶
추가 사용자 작업이 필요하지 않습니다. 이는 단지 정보 제공용입니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0017¶
마스킹은 지원되지 않습니다
심각도¶
낮음
설명¶
이 EWI는 SnowConvert AI가 CREATE TABLE 문 내부에서 마스킹된 열을 발견한 경우에 추가됩니다. 이 기능은 열 선언에 옵션을 추가해도 작동하지 않습니다. SQL Server와 동일하게 동작하려면 수동 작업이 필요합니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
SnowConvert AI는 현재 버전에서 MASKING POLICIES를 생성하지 않으므로 수동으로 생성해야 합니다. 예:
첫 번째 단계는 마스킹 정책 관리자 역할을 만드는 것입니다.
두 번째 단계는 생성된 역할에 필요한 권한을 부여하는 것입니다.
다음 단계는 마스킹 정책 함수를 만드는 것입니다.
참고
예제로, SQL Server에서 몇 가지 마스킹 함수를 가져와 Snowflake에서 해당 함수로 변환해 보겠습니다.
마지막 단계는 SQL Server에서 원래 마스킹 옵션이 있었던 열에 마스킹 정책을 추가하는 것입니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0023¶
대량 옵션이 지원되지 않습니다
심각도¶
낮음
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 BULK INSERT의 일부 옵션을 매핑할 수 없는 경우에 추가됩니다. 변환된 대량 옵션은 FILE FORMAT 옵션으로 반영되어야 합니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
SnowSQL CLI사용자 가이드를 참조하세요.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
관련 EWI¶
SSC-FDM-TS0004: UI에서 PUT 문은 지원되지 않습니다.
SSC-EWI-TS0024¶
대량 삽입에 대한 불완전한 변환
심각도¶
낮음
설명¶
이 EWI는 저장 프로시저 내부의 BULK INSERT가 전혀 식별되지 않아 전체 변환에 대한 종속성이 생성되지 않는 경우에 발생합니다. 또한 변환된 COPY INTO는 수동으로 생성해야 하는 tempStage에서 파일을 검색합니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
To retrieve the file, manually create a STAGE and a FILE FORMAT.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0025¶
ERROR_SEVERITY 함수가 변환되었습니다
심각도¶
낮음
참고
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or –PLTargetLanguage JavaScript
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 ERROR_SEVERITY 기본 제공 함수가 변환되는 경우에 추가됩니다. 기본적으로 이 함수는 SQL Server에서 가장 일반적인 심각도인 16을 반환합니다. 생성된 UDF를 다시 검색해야 합니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0026¶
Delete From이 있는 쿼리가 Create Table로 변환되었습니다.
심각도¶
낮음
설명¶
이 EWI는 Delete From이 있는 공통 테이블 식이 Create Table 또는 Replace Table로 변환되는 경우에 추가됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 사용자 작업이 필요하지 않습니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0032¶
대량 삽입이 부분적으로 변환되었습니다
경고
이 EWI는 Javascript가 저장 프로시저의 대상 언어인 경우에만 생성됩니다. Snowflake Scripting이 저장 프로시저에 권장되는 대상 언어이므로 이 기능은 더 이상 사용되지 않는 변환 기능입니다.
심각도¶
높음
참고
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or –PLTargetLanguage JavaScript
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 포함된 코드에 BULK INSERT 문이 있는 경우 원래 연결이었던 리터럴에 추가됩니다. BULK INSERT 변환의 결과로 생성된 PUT 명령은 원래 동적 SQL이었던 코드를 실행할 때 지원되지 않습니다.
따라서 PUT 명령은 출력 코드에서 추출하여 이를 포함하는 프로시저 외부에서 수동으로 실행해야 합니다. 프로시저 내부의 동적 SQL 문장에 많은 BULK INSERT 문이 있는 경우, 변환된 각 BULK INSERT에 해당 PUT 명령을 수동으로 실행할 수 있도록 이 프로시저를 분할하는 것이 좋습니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
동적
BULK INSERT문에서 생성된PUT명령을 추출하여 프로시저를 호출하기 전에 실행합니다.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0034¶
누락된 기호로 인해 RETURNS 절이 불완전합니다
심각도¶
높음
설명¶
이 EWI는 CREATE FUNCTION의 RETURNS TABLE 절을 올바르게 생성할 수 없는 경우 출력 코드에 추가됩니다. 이는 결과 RETURNS TABLE 절에 지정해야 하는 열을 SnowConvert AI가 유추할 수 없어 RETURNS TABLE 절이 비어 있는 경우에 발생합니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
이 문제의 원인은 다양할 수 있습니다. 코드에 필요한 모든 오브젝트를 포함해야 합니다. 마이그레이션에서 필요한 모든 오브젝트에 액세스할 수 있음에도 문제가 지속되는 경우 구체적인 시나리오에 대한 정보와 함께 당사에 문의합니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0035¶
초기화되지 않은 커서 변수 선언은 지원되지 않습니다.
심각도¶
Medium
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
Currently, a Cursor Variable that is declared but never initialized is not supported by Snowflake. Thus, the EWI is added, and the code commented out.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0036¶
Snowflake Scripting은 로컬 커서만 지원합니다.
심각도¶
Medium
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 로컬 커서 이외의 커서가 식별되는 경우에 추가됩니다. 현재, Snowflake Scripting은 로컬 커서만 지원합니다. 따라서 모든 커서는 로컬 커서로 변환됩니다.
코드 예제¶
입력 코드:¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0037¶
Snowflake Scripting 커서는 스크롤할 수 없습니다.
심각도¶
Medium
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
Snowflake Scripting 커서는 스크롤할 수 없습니다. 현재는 FETCH NEXT만 지원됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0039¶
동일한 커서에 대한 여러 SET 문이 발견되었습니다.
심각도¶
Medium
설명¶
이 EWI는 동일한 커서에 대해 여러 SET 문이 발견되는 경우에 추가됩니다. 모든 추가 SET 문도 주석 처리됩니다. 이는 Snowflake Scripting에서는 동일한 커서에 대해 여러 SET 문을 사용하는 것이 유효하지 않기 때문에 발생합니다.
코드 예시:¶
이 EWI는 동일한 커서에 대해 여러 SET 문이 발견되는 경우에 추가됩니다. 모든 추가 SET 문도 주석 처리됩니다. 이는 Snowflake Scripting에서는 동일한 커서에 대해 여러 SET 문을 사용하는 것이 유효하지 않기 때문에 발생합니다.¶
코드 예시:¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0041¶
XML 데이터 타입 메서드는 Snowflake에서 지원되지 않습니다.
심각도¶
Medium
설명¶
이 EWI는 Snowflake SQL에서 지원되지 않는 다음의 XML 데이터 타입 메서드에 추가됩니다.
값
쿼리
존재
수정
노드
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
소스 코드의 동작을 에뮬레이트하기 위해 UDFs를 사용합니다.
이 설명서를 참조하여 Snowflake에서 XML을 사용할 수 있는 몇 가지 방식을 검토할 수 있습니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0043¶
WITH XMLNAMESPACES는 Snowflake에서 지원되지 않습니다.
심각도¶
Medium
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 Snowflake SQL에서 지원되지 않는 WITHXMLNAMESPACES 절에 추가됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
소스 코드의 동작을 에뮬레이트하기 위해 UDFs를 사용합니다. 다음 코드는 원래 동작을 다시 만드는 데 사용할 수 있는 UDFs를 제안합니다.
SQL 서버¶
Snowflake SQL¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
관련 EWI¶
SSC-PRF-TS0001: 성능 경고 - CTE에 대한 재귀가 확인되지 않았습니다. 재귀 키워드가 필요할 수 있습니다.
SSC-EWI-TS0044: FOR XML 절은 Snowflake에서 지원되지 않습니다.
SSC-EWI-TS0015: Snowflake에서 지원되지 않는 데이터 타입
SSC-EWI-TS0044¶
FOR XML 절은 Snowflake에서 지원되지 않습니다.
심각도¶
중요
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 Snowflake SQL에서 지원되지 않는 FOR XML 절에 추가됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
소스 코드의 동작을 에뮬레이트하기 위해 UDFs를 사용합니다. 다음 코드는 원래 동작을 다시 만드는 데 사용할 수 있는 UDFs를 제안합니다.
SQL 서버
쿼리¶
결과¶
Snowflake¶
쿼리¶
결과¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0045¶
레이블이 지정된 문은 Snowflake Scripting에서 지원되지 않습니다.
심각도¶
낮음
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
This EWI is added when SnowConvert AI encounters a labeled statement in T-SQL that cannot be automatically transformed.
When GOTO/Label patterns appear inside a stored procedure with only forward jumps and top-level labels, SnowConvert AI automatically transforms them into nested procedure definitions with CALL/RETURN semantics — no EWI is emitted in those cases. See the LABEL and GOTO translation reference for details on the transformation.
This EWI is only emitted when the label cannot be transformed. This happens when the procedure contains a backward GOTO (one that targets a label appearing earlier in the source, which would require recursive calls), when labels appear inside anonymous blocks or UDFs (which do not support nested procedure definitions), or when labels are declared inside nested control flow blocks like IF, WHILE, or TRY (which cannot be extracted into nested procedures).
코드 예제¶
The following example shows a backward GOTO pattern (retry logic) where the label RetryConnection appears before the GOTO that targets it, preventing automatic transformation:
입력 코드:¶
생성된 코드:¶
모범 사례¶
For backward GOTO patterns like retry logic, refactor the control flow to use
WHILEorLOOPconstructs instead.For labels in anonymous blocks or UDFs, restructure the code into separate procedures or use
IF/ELSEcontrol flow.Forward GOTO/Label patterns inside stored procedures are automatically transformed — no manual action is required for those cases.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0046¶
시스템 테이블은 Snowflake에서 지원되지 않습니다.
심각도¶
Medium
설명¶
This EWI is added when referencing SQL Server system tables not supported or without equivalent in Snowflake SQL. See the supported and unsupported system tables reference for the complete list.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0047¶
RAISERROR 오류 메시지는 SQL Server 문자열 형식으로 인해 다를 수 있습니다.
참고
이 EWI는 더 이상 사용되지 않습니다. SSC-FDM-TS0019 설명서를 참조하세요.
심각도¶
낮음
설명¶
이 EWI는 RAISERROR 오류 메시지가 SQL Server 문자열 형식으로 인해 다를 수 있음을 알리기 위해 추가됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0049¶
여러 라인 If 본문 변환은 향후 제공될 예정입니다.
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
심각도¶
Medium
설명¶
IF 문 본문에 Begin ... End 블록이 포함된 대부분의 경우는 지원됩니다. 이는 성공적인 시나리오입니다( SSC-EWI-TS0049가 발생하지 않음).
코드 예제¶
입력 코드:¶
생성된 코드:¶
참고
일반 코드 예제(위의 예제와 같이)에서는 변환이 성공적으로 수행됩니다. 그러나 “IF” 문은 변환되지 않으며 EWI가 생성됩니다.
수동 지원¶
케이스 1: 단일 문¶
이러한 경우에는 변환된 문이 SELECT 절에 나타나므로 변환이 간단합니다.
케이스 2: 여러 개의 문¶
여러 문이 변환되는 경우 N개의 문을 변환하고 이를 N+1개 문의 소스 테이블로 사용해야 합니다.
케이스 3: 여러 세트 문¶
이러한 경우 각 세트 문에 대해 변환을 복제해야 합니다.
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0055¶
기본 제약 조건이 주석 처리되어 테이블 정의에 추가되었을 수 있습니다.
참고
이 EWI는 더 이상 사용되지 않습니다. SSC-FDM-TS0020 설명서를 참조하세요.
심각도¶
Medium
설명¶
이 EWI은 Alter Table 문에 기본 제약 조건이 있는 경우에 추가됩니다.
현재, 해당 제약 조건은 지원되지 않습니다. 이를 변환하는 데 사용할 수 있는 해결 방법은 Alter Table 사용 전에 테이블을 정의하는 것입니다. 그러면 참조를 식별하고 기본 제약 조건이 테이블 정의에 통합됩니다. 해당 작업을 하지 않은 경우 제약 조건이 주석으로만 처리됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
참고
Alter Table의 모든 내용이 유효하지 않은 경우 Alter Table이 주석 처리됩니다.
Known Issues¶
동일한 열에 대해 서로 다른 기본 제약 조건이 선언되면 첫 번째 제약 조건만 Create Table 문에 반영됩니다.
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0056¶
MASKED WITH를 대체하기 위해 MASKING POLICY가 생성되었습니다.
참고
이 EWI는 더 이상 사용되지 않습니다. SSC-FDM-TS0021 설명서를 참조하세요.
심각도¶
낮음
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 Alter Table 문에 MASKED WITH 절이 포함된 경우에 추가됩니다. MASKED WITH 함수를 대체하기 위해 대략적인 MASKING POLICY가 생성되었음을 알리기 위해 추가됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
참고
MASKING POLICY는 ALTER TABLE 문보다 먼저 생성됩니다. 그리고 대략적인 동작이 있을 것으로 예상됩니다. 역할 및 사용자 권한과 관련하여 약간의 조정이 필요할 수 있습니다. <!– TODO: You can relate to Broken link broken-reference “mention” for further details.>
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0057¶
사용자는 미리 마스킹 역할을 정의해야 합니다.
참고
이 EWI는 더 이상 사용되지 않습니다. SSC-FDM-TS0022 설명서 설명서를 참조하세요.
심각도¶
낮음
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 MASKING POLICY가 생성되고 데이터 마스킹이 올바르게 작동할 수 있도록 역할 또는 권한을 연결해야 하는 경우에 발생합니다.
코드 예제¶
입력 코드¶
생성된 코드:¶
참고
As shown on line 6, there is a placeholder where the defined roles can be placed. There is room for one or several values separated by commas. Also, here, the use of single quotes is mandatory for each of the values.
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0060¶
날짜 및 시간 간격은 Snowflake에서 지원되지 않습니다.
심각도¶
Medium
설명¶
이 EWI는 Snowflake에서 지원되지 않아 다음 시간 부분 중 하나가 날짜 관련 함수의 매개 변수로 사용되는 경우에 추가됩니다. 자세한 내용은 ‘지원되는 날짜 및 시간 부분(날짜 및 시간 함수 | Snowflake 설명서)을 참조하세요.
코드 예제¶
입력 코드¶
생성된 코드:¶
모범 사례¶
UDF를 생성하여 Snowflake에서 지원되지 않는 시간 부분을 수동으로 추출할 수 있습니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0061¶
ALTER COLUMN은 지원되지 않습니다
심각도¶
Medium
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 지원되지 않는 ALTER COLUMN 문이 있을 때마다 추가됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0063¶
Snowflake에서 지원되지 않는 타임존입니다.
심각도¶
중요
설명¶
이 EWI는 Snowflake에서 지원되지 않는 타임존이 있는 경우에 추가됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
여러 타임존을 지원하기 위해 사용자 정의 함수를 만들 수 있습니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0067¶
OPENXML 테이블 반환 함수에 유효하지 않은 매개 변수가 있습니다.
심각도¶
중요
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 OPENXML에 유효하지 않은 매개 변수가 있는 경우, 특히 XML 경로에 액세스할 수 없는 경우에 추가됩니다.
이를 EWI를 방지하려면 매개 변수를 통해 명시적 노드 경로를 전송하세요.
입력 코드:¶
생성된 코드:¶
입력 코드(명시적 매개 변수)¶
생성된 코드(명시적 매개 변수)¶
모범 사례¶
경로를 매개 변수로 명시적으로 전달할 수 있는지 확인합니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0070¶
At Time Zone 문의 CURRENT_TIMESTAMP는 특정 상황에서 다르게 동작할 수 있습니다.
참고
이 EWI는 더 이상 사용되지 않습니다. SSC-FDM-TS0024 설명서를 참조하세요.
설명¶
이 EWI는 At Time Zone에 CURRENT_TIMESTAMP가 있는 경우에 추가됩니다. 이는 경우에 따라 결과가 다를 수 있기 때문입니다.
주요 차이점은 SQL Server의 CURRENT_TIMESTAMP는 서버 타임존의 현재 시스템 날짜 및 시간을 반환하며, Snowflake의 CURRENT_TIMESTAMP는 UTC(협정 세계시) 타임존의 현재 날짜 및 시간을 반환합니다.
입력 코드:¶
Sql Server¶
결과¶
2024-02-08 16:52:55.317 -10:00
생성된 코드:¶
Snowflake¶
결과¶
2024-02-08 06:53:46.994 -1000
모범 사례¶
이는 Snowflake에서 동일한 형식을 유지하려는 경우의 예입니다.
SQL 서버¶
결과¶
2024-02-08 16:33:49.143 -10:00
Snowflake에서는 ALTER SESSION을 사용하여 기본 타임존을 변경합니다. 예를 들면 다음과 같습니다.
Snowflake¶
결과¶
2024-02-08 16:33:49.143
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0072¶
RETURN 문이 이전 RETURN 문으로 인해 무시됩니다.
심각도¶
낮음
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 SELECT 문 및 OUPUT 매개 변수가 반환되는 경우에 추가됩니다. 이 경우 SELECT 문의 결과 세트가 우선시됩니다.
입력 코드:¶
생성된 코드:¶
모범 사례¶
무시해야 하는 RETURN 문을 제거합니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
관련 EWI¶
SSC-FDM-0020: 여러 결과 세트가 임시 테이블에 반환됩니다.
SSC-EWI-TS0073¶
Snowflake에서는 오류 메시지가 다를 수 있음
참고
이 EWI는 더 이상 사용되지 않습니다. SSC-FDM-TS0023 설명서를 참조하세요.
심각도¶
낮음
설명¶
이 EWI는 ERROR_MESSAGE()의 변환에 추가됩니다. 오류의 정확한 메시지는 Snowflake에서 변경될 수 있습니다.
입력 코드:¶
생성된 코드¶
권장 사항¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0074¶
종속성 누락으로 인해 캐스트 결과가 TRY_CAST 및 TRY_CONVERT 함수와 다를 수 있습니다
심각도¶
낮음
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
이 EWI는 TRY_CAST 및 TRY_CONVERT 함수 변환 시 추가됩니다. 이러한 함수의 정확한 결과는 종속성 누락으로 인해 Snowflake에서 변경될 수 있습니다(SnowConvert AI가 일부 데이터 타입을 확인할 수 없음). 이는 소스 코드에 종속성이 없기 때문일 수 있습니다.
입력 코드:¶
생성된 코드¶
권장 사항¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0075¶
기본 제공 프로시저가 지원되지 않습니다
심각도¶
Medium
설명¶
기본 제공 프로시저에 대한 변환은 현재 지원되지 않습니다.
코드 예시¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
최종 사용자 작업이 필요하지 않습니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0076¶
기본 매개 변수를 재정렬해야 할 수 있습니다
참고
This EWI is deprecated. SnowConvert AI now automatically reorders default parameters to the end of the parameter list. Please refer to SSC-FDM-0041 for the updated behavior.
심각도¶
Medium
설명¶
기본 매개 변수를 재정렬해야 할 수도 있습니다. Snowflake는 매개 변수 선언 끝에 있는 기본 매개 변수만 지원합니다.
코드 예시¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
최종 사용자 작업이 필요하지 않습니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0077¶
데이터 정렬이 지원되지 않습니다
심각도¶
낮음
설명¶
이 메시지는 Snowflake에서 지원되지 않는 collate 절이 있는 경우에 표시됩니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 사용자 작업이 필요하지 않습니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0078¶
기본값은 Snowflake에서 허용되지 않습니다.
심각도¶
Medium
설명¶
이 오류는 함수 호출, 변수 이름 또는 명명된 상수와 같은 식이 기본 옵션 뒤에 올 때 코드에 추가됩니다.
Snowflake는 숫자 또는 문자열과 같은 명시적 상수만 지원합니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
¶
모범 사례¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0079¶
데이터베이스 콘솔 명령은 지원되지 않습니다
심각도¶
Medium
설명¶
이 EWI은 SnowConvert AI가 입력 코드 내부에서 DBCC 문을 발견한 경우 추가됩니다. 대부분의 DBCC 문은 Snowflake에서 지원되지 않습니다.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
추가 사용자 작업이 필요하지 않습니다. 이는 단지 정보 제공용입니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0080¶
런타임 시 실행 컨텍스트 변경은 Snowflake에서 지원되지 않습니다
심각도¶
높음
설명¶
SQL Server의 사용자는 실행 컨텍스트를 일시적으로 변경하기 위해 EXECUTE AS 명령을 사용할 수 있는데, 이로 인해 실행 권한이 수정되고 USER_NAME()과 같은 컨텍스트 종속 함수의 결과에 영향을 미칩니다. REVERT 명령을 사용하여 이전의 컨텍스트를 마지막 EXECUTE AS로 복원할 수 있습니다.
Snowflake는 CREATE PROCEDURE 또는 ALTER PROCEDURE 문을 사용하여 프로시저에서 실행 컨텍스트 정의만 지원합니다. 런타임 시 컨텍스트 변경은 지원되지 않습니다.
코드 예제¶
입력 코드:
출력 코드:
모범 사례¶
컨텍스트를 전환하지 않고도 작동하도록 코드를 리팩터링합니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0081¶
DELETE 문에서 FULL JOIN을 사용하는 것은 지원되지 않습니다
설명¶
DELETE 문을 변환할 때 SnowConvert AI는 해당 문의 FROM 절에서 찾은 테이블 참조를 추출하여 Snowflake DELETE 문의 USING 절로 이동합니다.
The following EWI warns the user about the limitations of the outer join (+) syntax in Snowflake. To preserve the LEFT and RIGHT JOINs used in the original code, outer join syntax (+) is added to the conditions to indicate such behavior. However, in Snowflake, the (+) syntax can’t be used to indicate FULL JOINs. For more information, see Joins in the WHERE clause.
코드 예시¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
FULL JOIN의 논리를 확인합니다. 다른 JOIN 유형으로 다시 작성할 수 있습니다. 예를 들어, 예제 코드에 포함된 코드는 기본적으로 LEFT JOIN과 동일합니다.
입력:
출력:
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0082¶
CROSS APPLY가 LEFT OUTER JOIN으로 변환되었으며 수동 유효성 검사가 필요합니다.
설명¶
CROSS APPLY에서 LEFT OUTER JOIN으로 변환되면 Snowflake에서 잘못된 결과나 예기치 않은 동작이 발생할 수 있으므로 수동 유효성 검사가 필요합니다. 두 함수는 비슷해 보일 수 있지만, 특히 하위 쿼리에 일치하는 항목이 없거나 하위 쿼리가 외부 테이블과 상관 관계가 있는 경우 특정 상황을 다르게 처리합니다.
코드 예시¶
설정 데이터¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
LEFT OUTER JOIN이 실패할 수 있는 주요 시나리오¶
필터링 동작: 원래
CROSS APPLY는 기본 테이블에서 하위 쿼리에 일치 항목이 없는 행을 필터링하기 위한 것이며,LEFT OUTER JOIN은 이 동작을 복제하지 않습니다. 대신, 조인된 열에NULL값이 있는 행을 포함하며, 이는 의도한 결과가 아닐 수 있습니다.상관 관계가 있는 하위 쿼리:
CROSS APPLY는 하위 쿼리가 외부 쿼리의 열을 참조하는 상관 관계가 있는 하위 쿼리를 지원하도록 특별히 설계되었습니다. 표준LEFT OUTER JOIN은 동일한 방식으로 이 패턴을 지원하지 않습니다. 상관 관계가 있는CROSS APPLY를LEFT OUTER JOIN으로 변환하려고 시도하면 구문 오류, 데카르트 곱(중복 행) 또는 논리적으로 잘못된 결과가 발생할 수 있습니다.결과 세트 차이점:
CROSS APPLY및LEFT OUTER JOIN의 의미 체계는 다르며, 특히 하위 쿼리가 행을 반환하지 않는 경우에는 더욱 그렇습니다.CROSS APPLY는 이러한 행을 결과에서 제외하지만,LEFT OUTER JOIN은NULL값이 있는 행을 포함합니다.
권장 사항: 항상 CROSS APPLY가 LEFT OUTER JOIN으로 변환된 쿼리의 출력을 검토하고 테스트하여 정확성을 보장합니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0083¶
Error Message¶
ROLLBACK TRANSACTION requires the appropriate setup to work as intended.
심각도¶
Low
설명¶
This EWI is generated when a ROLLBACK TRANSACTION statement is encountered, indicating that SnowConvert has successfully transformed the statement into a Snowflake-compatible format. However, the transformation requires manual verification because Snowflake’s transaction rollback behavior differs significantly from SQL Server’s ROLLBACK TRANSACTION functionality.
코드 예시¶
Input (SQL Server):¶
Output (Snowflake Scripting):¶
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0085¶
INSERT WITH EXECUTE statement requires manual review.
심각도¶
Medium
설명¶
This issue is generated when SnowConvert AI encounters an INSERT ... EXECUTE statement that cannot be automatically transformed. In SQL Server, INSERT ... EXEC inserts the result set of a stored procedure or dynamic SQL into a table. Snowflake does not support this syntax directly. When the statement appears at the top level (outside a stored procedure), SnowConvert AI cannot apply its standard transformation pattern and flags the statement for manual review.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
Rewrite the logic using Snowflake Scripting: call the procedure separately, capture its result with
RESULT_SCAN(LAST_QUERY_ID()), and thenINSERT INTO ... SELECTfrom the result set.If the procedure returns a fixed schema, consider using a temporary table or
TABLE()function to capture the output.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0086¶
OPENQUERY is not supported in Snowflake.
심각도¶
높음
설명¶
This issue is generated when SnowConvert AI encounters an OPENQUERY function. In SQL Server, OPENQUERY executes a pass-through query on a linked server and returns the result as a table. Snowflake does not have an equivalent linked server or OPENQUERY mechanism. The statement is preserved as-is with an EWI marker for manual migration.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
Replace
OPENQUERYwith Snowflake external tables, external stages, or data sharing to access data from external sources.If the linked server points to another database, consider migrating that data into Snowflake or using Snowflake’s connector ecosystem (e.g., Snowflake Connector for Oracle).
For real-time access patterns, evaluate Snowflake External Network Access or External Functions.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0087¶
GOTO is not supported in Snowflake.
심각도¶
높음
설명¶
This issue is generated when SnowConvert AI encounters a GOTO statement that cannot be automatically transformed.
When GOTO/Label patterns appear inside a stored procedure with only forward jumps to top-level labels, SnowConvert AI automatically transforms them into nested procedure definitions with CALL/RETURN semantics — no EWI is emitted in those cases. See the LABEL and GOTO translation reference for details on the transformation.
This EWI is only emitted when the GOTO cannot be transformed. This happens with backward GOTOs (where the target label appears before the GOTO in the source, which would require recursive calls), or when the GOTO appears inside anonymous blocks or UDFs (which do not support nested procedure definitions in Snowflake).
코드 예제¶
The following example shows a backward GOTO used for retry logic. Because RetryConnection appears before the GOTO that jumps to it, the transformation cannot be applied and the EWI is emitted:
입력 코드:¶
생성된 코드:¶
모범 사례¶
For backward GOTO patterns like retry logic, refactor the control flow to use
WHILEorLOOPconstructs instead.For GOTO in anonymous blocks or UDFs, restructure the code into separate procedures or use
IF/ELSEcontrol flow.Forward GOTO patterns inside stored procedures are automatically transformed — no manual action is required for those cases.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
Related EWIs¶
SSC-EWI-TS0045: Labeled statement is not supported in Snowflake Scripting.
SSC-EWI-TS0103: GOTO targeting a label inside a nested block is not supported in Snowflake.
SSC-EWI-TS0088¶
Unsupported sequence options were removed during conversion.
심각도¶
낮음
설명¶
This issue is generated when SnowConvert AI encounters a CREATE SEQUENCE statement with options that are not supported in Snowflake, such as MINVALUE, MAXVALUE, or CYCLE. These options are removed during conversion because Snowflake sequences only support START WITH and INCREMENT BY. The EWI message lists the specific options that were removed.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
If your application relies on
CYCLEbehavior, implement a wrapper UDF that resets the sequence value when it exceeds a threshold.If
MINVALUEorMAXVALUEbounds are critical, add application-level validation or a Snowflake task to monitor sequence values.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0089¶
SET statement is not supported in Snowflake.
심각도¶
낮음
설명¶
This issue is generated when SnowConvert AI encounters a SET statement that changes a session option not supported in Snowflake and whose non-default value cannot be replicated. For example, SET CONCAT_NULL_YIELDS_NULL OFF changes SQL Server’s NULL concatenation behavior, but Snowflake always treats NULL || value as NULL (equivalent to CONCAT_NULL_YIELDS_NULL ON). Similarly, SET NUMERIC_ROUNDABORT ON raises errors on precision loss, which Snowflake does not support. The original statement is preserved with an EWI marker.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
Review the downstream code that depends on this
SEToption. ForCONCAT_NULL_YIELDS_NULL OFF, replaceNULLconcatenation patterns with explicitNVL()orCOALESCE()calls to handle NULL values.For
NUMERIC_ROUNDABORT ON, add explicit rounding or precision checks in the application logic.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
Related EWIs¶
SSC-FDM-TS0037: SET statement with equivalent default behavior in Snowflake (e.g.,
SET CONCAT_NULL_YIELDS_NULL ON).
SSC-EWI-TS0090¶
Agent Job step uses an unsupported subsystem and requires manual migration.
심각도¶
Medium
설명¶
This issue is generated when SnowConvert AI encounters a SQL Server Agent Job step that uses a subsystem other than TSQL or SSIS (e.g., CmdExec, PowerShell, ANALYSISCOMMAND). These subsystems execute operating system commands or external tools that have no direct equivalent in Snowflake. The original sp_add_jobstep call is preserved with an EWI marker, and the step is not included in the generated Snowflake Task orchestration.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
For
CmdExecorPowerShellsteps, evaluate whether the logic can be rewritten as a Snowflake stored procedure, external function, or Snowflake task with a SQL body.For SSIS steps, use SnowConvert AI’s built-in ETL-to-dbt migration, which automatically generates orchestrator stored procedures.
Consider using Snowflake External Functions or Snowpark for operations that require external compute.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0091¶
Agent Job notification procedure requires manual setup of a Snowflake notification integration.
심각도¶
Medium
설명¶
This issue is generated when SnowConvert AI encounters a SQL Server Agent notification procedure such as sp_send_dbmail, sp_notify_operator, or similar email/alert procedures within an Agent Job context. These procedures rely on SQL Server’s Database Mail or Operator subsystem, which has no direct equivalent in Snowflake. A Snowflake notification integration must be manually configured to replicate this functionality.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
Set up a Snowflake Notification Integration with an email provider or cloud messaging service (AWS SNS, Azure Event Grid, GCP Pub/Sub).
Use
SYSTEM$SEND_EMAIL()in Snowflake to send email notifications from stored procedures and tasks.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0092¶
Agent Job procedure references a dynamic job name that cannot be resolved statically.
심각도¶
Medium
설명¶
This issue is generated when SnowConvert AI encounters an Agent Job management procedure (sp_start_job, sp_stop_job, sp_delete_job, sp_update_job) where the @job_name parameter is a variable rather than a string literal. Because the job name cannot be resolved at conversion time, SnowConvert AI cannot determine which Snowflake Task to reference. The original statement is preserved with an EWI marker for manual resolution.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
If the job name is known at design time, replace the variable with a string literal so SnowConvert AI can resolve it to the corresponding Snowflake Task (e.g.,
EXECUTE TASK TASK_ETL_DAILY_LOAD).If the job name is truly dynamic, use
EXECUTE IMMEDIATEto build theEXECUTE TASKorALTER TASKstatement dynamically in Snowflake Scripting.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0093¶
Agent Job procedure is not supported.
심각도¶
낮음
설명¶
This issue is generated when SnowConvert AI encounters a SQL Server Agent Job system procedure that does not have a supported translation to Snowflake. This includes procedures like sp_update_jobstep, sp_add_jobserver, and sp_update_job (when used without the @enabled parameter). These procedures manage Agent Job metadata that has no equivalent in Snowflake’s Task framework. The original statement is preserved with an EWI marker.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
Review whether the procedure’s functionality is still needed in the Snowflake environment. Many Agent Job metadata operations (renaming steps, assigning servers) are not applicable in Snowflake’s Task model.
If the procedure modifies job scheduling or enablement, use
ALTER TASKin Snowflake instead.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0094¶
Error Message¶
WAITFOR DELAY variable may contain a time string incompatible with SYSTEM$WAIT.
심각도¶
Medium
설명¶
This EWI is generated when a WAITFOR DELAY statement uses a variable or parameter expression instead of a literal time value. The statement is transformed to CALL SYSTEM$WAIT(), which expects a numeric value representing seconds (or milliseconds). However, the variable may hold a time string in 'HH:MM:SS' format, which is incompatible with SYSTEM$WAIT.
For more information about SYSTEM$WAIT, see the Snowflake documentation.
코드 예제¶
입력 코드:¶
생성된 코드:¶
모범 사례¶
Ensure the variable passed to
SYSTEM$WAITcontains a numeric value in seconds, not a time string in'HH:MM:SS'format.If the variable holds a time string, convert it to seconds before passing it to
SYSTEM$WAIT.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0095¶
SCOPE_IDENTITY() called without a preceding INSERT to an identity table in the same scope.
심각도¶
High
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
SnowConvert AI was unable to determine the target table for SCOPE_IDENTITY(). No preceding INSERT to an identity table found in the same scope.
This EWI is generated when SCOPE_IDENTITY() is called without a preceding INSERT statement to a table with an IDENTITY column in the same procedural scope. In SQL Server, SCOPE_IDENTITY() returns the last identity value inserted in the current scope, but without a detectable INSERT, SnowConvert AI cannot generate the appropriate time-travel query.
The function call is kept as-is with this EWI, requiring manual review to determine the correct implementation.
코드 예제¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
모범 사례¶
Review the stored procedure logic to identify where the INSERT statement occurs
If the INSERT is in a different scope (e.g., nested block), refactor the code to make the INSERT detectable
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0096¶
SCOPE_IDENTITY() references a table that cannot be resolved in the symbol table.
심각도¶
High
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
SnowConvert AI was unable to resolve the target table for SCOPE_IDENTITY(). Missing table definition.
This EWI is generated when SCOPE_IDENTITY() follows an INSERT statement, but the target table cannot be resolved in the symbol table. This may occur when:
The table is defined in an external file not included in the conversion
The table name uses dynamic SQL or is otherwise unresolvable
The table definition is missing or incomplete
Without a resolvable table reference, SnowConvert AI cannot determine which identity column to query in the generated time-travel query.
코드 예제¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
모범 사례¶
Ensure all table definitions are included in the conversion input
Verify that the table name in the INSERT statement matches the table definition
If the table is external, provide the schema definition or manually implement the identity retrieval logic
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0097¶
SCOPE_IDENTITY() references a table without an identifiable identity column.
심각도¶
High
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
SnowConvert AI was unable to identify the identity column for SCOPE_IDENTITY(). Missing column definition.
This EWI is generated when SCOPE_IDENTITY() follows an INSERT statement to a table that exists in the symbol table but does not have an IDENTITY column defined. In SQL Server, SCOPE_IDENTITY() only returns values for tables with identity columns. Without an identifiable identity column, SnowConvert AI cannot generate the appropriate MAX(identity_column) query for the time-travel transformation.
코드 예제¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
모범 사례¶
Verify that the table definition includes an IDENTITY column specification
If the table should have an identity column, add the IDENTITY constraint to the CREATE TABLE statement before conversion
If the table should not use SCOPE_IDENTITY(), refactor the code to use a different method for retrieving the inserted ID
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0098¶
CONVERT with a non-literal style cannot be mapped to a Snowflake format string.
심각도¶
Medium
설명¶
This EWI is generated when the third argument of CONVERT is a variable or expression instead of a literal style code. SnowConvert AI can map literal style values to Snowflake format strings for TO_DATE and TO_TIMESTAMP, but when the style is dynamic it cannot determine the correct format at conversion time. In those cases SnowConvert AI falls back to CAST.
코드 예제¶
Input Code (SQL Server):¶
Generated Code (Snowflake SQL):¶
모범 사례¶
Replace the dynamic style argument with a known literal format whenever possible.
If the style varies at runtime, rewrite the expression manually using the correct
TO_DATE,TO_TIMESTAMP, or conditional logic in Snowflake.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0099¶
The OBJECT_SCHEMA_NAME function is not supported in Snowflake.
참고
This EWI is deprecated. OBJECT_SCHEMA_NAME is now converted to a helper UDF OBJECT_SCHEMA_NAME_UDF. When the two-argument form is used, refer to SSC-FDM-TS0060 for information about the removed database_id parameter.
심각도¶
Low
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
This EWI was generated when SnowConvert AI encountered the SQL Server OBJECT_SCHEMA_NAME(object_id [, database_id]) function, which returns the schema name for a schema-scoped object given its numeric object ID. Snowflake does not use numeric object IDs for metadata lookups.
This EWI has been replaced by an automatic conversion to a helper UDF (OBJECT_SCHEMA_NAME_UDF) that queries INFORMATION_SCHEMA to resolve schema names.
코드 예제¶
Input Code (SQL Server):¶
Generated Code (Snowflake SQL) — Previous behavior:¶
Generated Code (Snowflake SQL) — Current behavior:¶
모범 사례¶
This EWI is no longer emitted.
OBJECT_SCHEMA_NAMEcalls are now automatically converted toOBJECT_SCHEMA_NAME_UDF.Review the generated UDF to ensure it resolves the correct schema for your objects.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0103¶
GOTO targeting a label inside a nested block is not supported in Snowflake.
심각도¶
높음
설명¶
This EWI is generated when a GOTO targets a label that is declared inside a nested control flow block (such as IF, WHILE, BEGIN...END, or TRY...CATCH). SnowConvert AI’s GOTO/Label decomposition can only transform labels that are declared at the top level of a procedure body — labels buried inside nested blocks cannot be extracted into standalone nested procedures. When this happens, the GOTO is preserved with this EWI marker, while top-level labels in the same procedure are still transformed normally.
코드 예제¶
In this example, Done is a top-level label and is transformed into a nested procedure. However, HandlePartialFailure is declared inside a BEGIN...END block, so the GOTO targeting it cannot be transformed:
입력 코드:¶
생성된 코드:¶
모범 사례¶
Move the nested label to the top level of the procedure body so SnowConvert AI can transform it automatically.
Alternatively, replace the GOTO with structured
IF/ELSEorLOOPcontrol flow to avoid the jump entirely.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
Related EWIs¶
SSC-EWI-TS0045: Labeled statement is not supported in Snowflake Scripting.
SSC-EWI-TS0087: GOTO is not supported in Snowflake.
SSC-EWI-TS0104¶
System table query pattern could not be automatically converted.
심각도¶
Medium
설명¶
This EWI is generated when SnowConvert AI encounters a query pattern inside a system table query (such as sysconstraints) that it cannot translate automatically. Common triggers include:
OBJECT_NAME()called with an argument that doesn’t map to a known column (for example,OBJECT_NAME(status)instead ofOBJECT_NAME(constid)orOBJECT_NAME(id))OBJECT_NAME()compared against a non-literal value (a column reference, variable, or expression instead of a string literal)
In these cases the original expression is preserved and the EWI is emitted so you can review and rewrite the query manually.
코드 예제¶
Input Code (SQL Server):¶
Generated Code (Snowflake SQL):¶
Input Code (SQL Server) - Non-literal comparison:¶
Generated Code (Snowflake SQL):¶
모범 사례¶
Replace
OBJECT_NAME(constid)withCONSTRAINT_NAMEandOBJECT_NAME(id)withTABLE_NAMEwhen queryingINFORMATION_SCHEMA.TABLE_CONSTRAINTS.Ensure that the comparison value is a string literal. If you need to compare against a variable or column, rewrite the query to use the equivalent
INFORMATION_SCHEMAcolumn directly.Review the sysconstraints translation reference for supported transformation patterns.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
SSC-EWI-TS0107¶
CREATE TYPE AS TABLE cannot be converted to Snowflake
심각도¶
Medium
설명¶
SQL Server table types created with CREATE TYPE ... AS TABLE (...) are not mapped to a single Snowflake CREATE TYPE equivalent. SnowConvert flags this pattern so you can redesign using tables, views, or other Snowflake constructs.
코드 예시¶
Input Code (SQL Server):¶
Generated Code (Snowflake SQL):¶
모범 사례¶
Model reusable row shapes as permanent or transient tables, or use
OBJECT/VARIANTpatterns where appropriate.추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.