SnowConvert AI - SQL ServerとAzure Synapseの問題¶
Applies to
SQL Server
Azure Synapse Analytics
Sybase
SSC-EWI-TS0001¶
ユーザー定義関数本文が生成されない
重大性¶
Critical
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
この EWI は、SnowConvert AI が関数の翻訳中に関数本文が生成されない原因となる重大な例外を処理するときに表示されます。
コード例¶
SQL Server¶
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 Server¶
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 によって、ゼロによる除算や算術オーバーフローなどの警告が無効になります。Snowflakeでは SET ANSI_WARNINGS OFF を直接設定できないので、SnowConvert AI でこの EWI を生成します。
コード例¶
SQL Server¶
Snowflake¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0009¶
次のトランザクションはネストされたトランザクションを含む可能性があります。これはSnowflakeではサポートされない複雑なパターンと考えられます。
注釈
わかりやすくするため、出力コードの一部を省略しています。
重大性¶
高
説明¶
このエラーは、トランザクションがネストされたトランザクションを含む可能性があることを示すために追加されました。SQL Serverでは、トランザクションを入れ子にすることができます。これは、既存のトランザクションの中で新しいトランザクションを開始できることを意味します。最初の BEGIN ステートメントの後に別のBEGINステートメントを実行すると、新しいトランザクションが開き、現在のトランザクションカウントが1増えます。
一方、これはSnowflakeではサポートされていないので、2つ目の BEGIN ステートメントは無視され、トランザクションは1つだけのままとなります。詳しくは SQL Serverトランザクション をご参照ください。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
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ではサポートされていません
重大性¶
中
説明¶
この警告は、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 が生成されないため、手動で作成する必要があります。例:
最初のステップは、マスキングポリシーの管理者ロールを作成することです。
2つ目は、作成したロールに必要な権限を付与することです。
次のステップは、マスキングポリシー関数を作成することです。
注釈
サンプルとして、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: PUT ステートメントは UI ではサポートされていません。
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クエリがCreate Tableに変換されている
重大性¶
低
説明¶
この EWI は、Delete Fromを持つ共通テーブル式がCreate TableまたはReplace Tableに変換されたときに追加されます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0032¶
一括挿入が部分的に翻訳されている
警告
この EWI は、Javascriptがストアドプロシージャのターゲット言語である場合にのみ生成されます。ストアドプロシージャの推奨ターゲット言語はSnowflakeスクリプトであるため、これは非推奨の変換機能です。
重大性¶
高
注釈
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or --PLTargetLanguage JavaScript
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
この EWI は、元々連結だったリテラルに追加されるもので、含まれるコードに BULK INSERT ステートメントがあったときに追加されます。この PUT コマンドは BULK INSERT を翻訳した結果ですが、もともと動的 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¶
初期化されないカーソル変数の宣言はサポートされていません。
重大性¶
中
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
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スクリプトはローカルカーソルのみをサポートしています。
重大性¶
中
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
この EWI は、ローカルカーソル以外のカーソルが識別された場合に追加されます。現在、Snowflakeスクリプトはローカルカーソルのみをサポートしています。したがって、すべてのカーソルはローカルカーソルとして変換されます。
コード例¶
入力コード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0037¶
Snowflakeスクリプトカーソルはスクロールできません。
重大性¶
中
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
Snowflakeスクリプトカーソルはスクロールできません。現在のところ、FETCH NEXT のみサポートされています。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0039¶
同じカーソルに対して複数の SET ステートメントが見つかりました。
重大性¶
中
説明¶
この EWI は、同じカーソルに対して複数の SET ステートメントが見つかった場合に追加されます。追加の SET ステートメントもすべてコメントアウトされます。これは、同じカーソルに対して複数の SET ステートメントを持つことは、Snowflakeスクリプトでは無効であるために起こります。
コード例:¶
この EWI は、同じカーソルに対して複数の SET ステートメントが見つかった場合に追加されます。追加の SET ステートメントもすべてコメントアウトされます。これは、同じカーソルに対して複数の SET ステートメントを持つことは、Snowflakeスクリプトでは無効であるために起こります。¶
コード例:¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0041¶
XML データ型メソッドはSnowflakeではサポートされていません。
重大性¶
中
説明¶
この EWI は、Snowflake SQL でサポートされていない以下の XML データ型メソッド のために追加されます。
値
クエリ
存在
変更
ノード
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ソースコードの動作をエミュレートするために、UDFs の使用を検討します。
こちらのドキュメントをチェック すると、Snowflakeで XML データ型を扱うためのアプローチを確認できます。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0043¶
WITH XMLNAMESPACES はSnowflakeではサポートされていません。
重大性¶
中
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
この EWI は、Snowflake SQL ではサポートされていない WITH XMLNAMESPACES 句のために追加されます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ソースコードの動作をエミュレートするために、UDFs の使用を検討します。以下のコードは、元の動作を再現するために使用できる UDFs の提案を示しています。
SQL Server¶
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ではサポートされていません。
重大性¶
Critical
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
この EWI は、Snowflake SQL ではサポートされていない FOR XML 句のために追加されています。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ソースコードの動作をエミュレートするために、UDFs の使用を検討します。以下のコードは、元の動作を再現するために使用できる UDFs の提案を示しています。
SQL Server
クエリ¶
結果¶
Snowflake¶
クエリ¶
結果¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0045¶
ラベル付きステートメントは、Snowflakeスクリプトではサポートされていません。
重大性¶
低
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
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ではサポートされていません。
重大性¶
中
説明¶
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本文は今後配信される予定です。
注釈
わかりやすくするため、出力コードの一部を省略しています。
重大性¶
中
説明¶
IF ステートメントで本文に Begin ...End ブロックを含むもののほとんどはサポートされています。これは成功するシナリオです(SSC-EWI-TS0049 は生成されません)。
コード例¶
入力コード:¶
生成されたコード:¶
注釈
一般的な(上のような)コード例では、変換は正常に行われます。しかし、「IF」ステートメントが変換されず、EWI が生成されるエッジケースもあります。
手動サポート¶
ケース1: 単一のステートメント¶
このようなケースでは、変換されたステートメントはselect句に現れるので、変換は簡単です。
ケース2: 複数のステートメント¶
複数のステートメントを変換する場合、Nステートメントを変換し、これをN+1ステートメントのソーステーブルとして使用します。
ケース3: 複数のセットステートメント¶
このようなケースでは、setステートメントごとに変換を繰り返す必要があります。
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0055¶
デフォルトの制約がコメントアウトされ、テーブル定義に追加された可能性があります。
注釈
この EWI は非推奨です。 SSC-FDM-TS0020 ドキュメントをご参照ください。
重大性¶
中
説明¶
この EWI は、Alter Tableステートメントにデフォルトの制約が存在する場合に追加されます。
現在のところ、その制約はサポートされていません。これを変換するために利用可能な回避策としては、Alter Tableの前にテーブルを定義しておくことです。こうすると、参照を特定でき、デフォルトの制約はテーブル定義に統合されます。そうしなければ、制約がコメントアウトされるだけです。
コード例¶
入力コード:¶
生成されたコード:¶
注釈
Alter Tableの内容がすべて無効である場合、Alter Tableはコメントアウトされることになります。
既知の問題¶
同じ列に対して異なるデフォルトの制約が宣言されている場合、最初の制約のみがCreate Tableステートメントに反映されます。
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0056¶
MASKING POLICY がMASKED WITH の代用で作成されました。
注釈
この 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ではサポートされていません。
重大性¶
中
説明¶
この EWI は、日付関連関数のパラメーターとして以下の時間部分のいずれかが使用される場合に追加されます。これらはSnowflakeではサポートされていないためです。詳細については、サポートされている日付と時間の部分( 日付と時刻の関数 | Snowflakeドキュメント )をご参照ください。
コード例¶
入力コード¶
生成されたコード:¶
ベストプラクティス¶
Snowflakeでサポートされていない時間部分を手動で抽出するために、UDF が作成される可能性があります。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0061¶
ALTER COLUMN はサポートされていません。
重大性¶
中
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
この EWI は、サポートされていない ALTER COLUMN ステートメントがあるたびに追加されます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0063¶
タイムゾーンはSnowflakeではサポートされていません。
重大性¶
Critical
説明¶
この 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 Server¶
結果¶
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¶
組み込みプロシージャはサポートされていません
重大性¶
中
説明¶
組み込みプロシージャの翻訳は現在サポートされていません。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーのアクションは必要ありません。
さらにサポートが必要な場合は、 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.
重大性¶
中
説明¶
デフォルトパラメーターの並び替えが必要な場合があります。Snowflakeは、パラメーター宣言の末尾にあるデフォルトパラメーターのみをサポートしています。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーのアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0077¶
照合順序はサポートされていません
重大性¶
低
説明¶
このメッセージは、Snowflakeでサポートされていないcollate句がある場合に表示されます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0078¶
Snowflakeではデフォルト値は使用できません。
重大性¶
中
説明¶
このエラーは、関数呼び出し、変数名、名前付き定数などの式がデフォルトオプションに従う場合にコードに追加されます。
Snowflakeでは、数値や文字列のような明示的な定数のみをサポートしています。
コード例¶
入力コード:¶
生成されたコード:¶
¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-EWI-TS0079¶
データベースコンソールコマンドはサポートされていません
重大性¶
中
説明¶
この 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ステートメントでの完全結合の使用はサポートされていません
説明¶
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において正しくない結果や予期しない動作につながる可能性があるため、手動による検証が必要です。この2つの関数は似ているように見えるかもしれませんが、特にサブクエリがマッチしない場合や、サブクエリがアウターテーブルと相関している場合など、処理する状況が異なります。
コード例¶
セットアップデータ¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
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.
重大性¶
中
説明¶
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.
重大性¶
中
説明¶
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.
重大性¶
中
説明¶
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.
重大性¶
中
説明¶
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
重大性¶
中
説明¶
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 までメールでお問い合わせください。