SnowConvert AI - SQL サーバーとAzure Synapse - ALTER¶
ALTER キーワードが先行するすべての DDL ステートメントの翻訳リファレンス。
TABLE¶
説明¶
列や制約を変更、追加、ドロップすることで、テーブル定義を変更します。ALTER TABLE は、パーティションの再割り当てと再構築、制約とトリガーの無効化と有効化も行います。(https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-transact-sql)
CHECK CONSTRAINT¶
Applies to
SQL Server
Azure Synapse Analytics
説明¶
注釈
わかりやすくするため、出力コードの一部を省略しています。
SnowConvert AI comments out ALTER TABLE ... CHECK CONSTRAINT ... and ALTER TABLE ... NOCHECK CONSTRAINT ... statements because enabling or disabling constraints is not applicable in Snowflake.
This behavior applies to the CHECK CONSTRAINT action. It does not apply to unsupported ADD CHECK (...) constraint definitions, which continue to be flagged separately.
サンプルソースパターン¶
SQL Server¶
Snowflake¶
Known Limitations¶
Snowflake constraints are informational only, so SQL Server workflows that depend on enabling or disabling constraints must be redesigned manually.
This section only covers the
CHECK CONSTRAINTaction. UnsupportedCHECKconstraint definitions may still emit SSC-EWI-0035.
ADD¶
説明¶
注釈
SQL Serverでは、 ADD 句は ADD ごとに複数のアクションを許可しますが、Snowflakeは ADD 列の一連のアクションのみを許可します。その結果、 SnowConvert AI は ALTER TABLE ADD 句を個々の ALTER TABLE ステートメントに分割します。
ADD キーワードによって提供される機能のサブセットがあり、ターゲットテーブルに異なる要素を追加することができます。これらには次が含まれます。
列の定義
計算列定義
テーブル制約
列セット定義
TABLE CONSTRAINT¶
Applies to
SQL Server
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
ALTER TABLE を使用してテーブルに追加された新しい列定義の一部である PRIMARY KEY、 FOREIGN KEY、 UNIQUE、または CHECK 制約のプロパティを指定します。(https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-column-constraint-transact-sql)
列制約の翻訳は比較的簡単です。構文には、Snowflakeでは必須ではない部分やサポートされていない部分がいくつかあります。
これらの部分には次のようなものがあります。
CLUSTERED | NONCLUSTEREDWITH FILLFACTOR = fillfactorWITH ( index_option [, ...n ] )ON { partition_scheme_name ( partition\_column\_name ) | filegroup | "default" }NOT FOR REPLICATIONCHECK [ NOT FOR REPLICATION ]
SQL Serverでの構文¶
Snowflake での構文¶
サンプルソースパターン¶
複数の ALTER TABLE インスタンス¶
SQL Server¶
Snowflake¶
制約内の DEFAULT¶
SQL Server¶
Snowflake¶
既知の問題¶
1.DEFAULT は CREATE TABLE および ALTER TABLE ... ADD COLUMN 内でのみサポートされます
SQL Server supports defining a DEFAULT property within a constraint, while Snowflake only allows that when adding the column through CREATE TABLE or ALTER TABLE ... ADD COLUMN. DEFAULT properties within the ADD CONSTRAINT syntax are not supported and will be translated to ALTER TABLE ALTER COLUMN.
CHECK¶
Applies to
SQL Server
説明¶
注釈
わかりやすくするため、出力コードの一部を省略しています。
When CHECK clause is in the ALTER statement, SnowConvert AI will comment out the entire statement, since it is not supported.
サンプルソースパターン¶
SQL Server¶
Snowflake¶
既知の問題¶
1. ALTER TABLE CHECK 句はSnowflakeではサポートされていません。
Snowflakeではサポートされていないため、 ALTER TABLE CHECK 句全体がコメントアウトされています。
関連 EWIs¶
SSC-EWI-0035: チェックステートメントがサポートされていません。
CONNECTION¶
Applies to
SQL Server
説明¶
注釈
わかりやすくするため、出力コードの一部を省略しています。
ALTER ステートメントに CONNECTION 句がある場合、 SnowConvert AI ではサポートされていないため、ステートメント全体がコメントアウトされます。
サンプルソースパターン¶
SQL Server¶
Snowflake¶
既知の問題¶
1. ALTER TABLE CONNECTION 句はSnowflakeではサポートされていません。
Snowflakeではサポートされていないため、 ALTER TABLE CONNECTION 句全体がコメントアウトされています。
関連 EWIs¶
SSC-EWI-0109: テーブル変更構文はSnowflakeでは適用できません。
DEFAULT¶
Applies to
SQL Server
説明¶
ALTER ステートメントに DEFAULT 句がある場合、 SnowConvert AI ではサポートされていないため、ステートメント全体がコメントアウトされます。
唯一の機能シナリオは、テーブル定義が同じファイル上にある場合に起こります。この場合、デフォルトは列定義に追加されます。
サンプルソースパターン¶
SQL Server¶
Snowflake¶
既知の問題¶
1.ALTER TABLE DEFAULT 句はSnowflakeではサポートされていません。
Snowflakeではサポートされていないため、 ALTER TABLE DEFAULT 句全体がコメントアウトされています。
関連 EWIs¶
SSC-FDM-TS0020: デフォルト制約がコメントアウトされ、テーブル定義に追加された可能性があります。
FOREIGN KEY¶
Applies to
SQL Server
説明¶
注釈
わかりやすくするため、出力コードの一部を省略しています。
Snowflakeは参照整合性制約の文法とそのプロパティをサポートし、他のデータベースからの移行を容易にします。
SQL Server¶
Snowflake¶
サンプルソースパターン¶
SQL Server¶
Snowflake¶
注釈
Snowflakeでは、 NOT NULL を除いて制約は強制されません。
主キーと外部キーは、設計制約よりもドキュメント目的で使用されます。
ON PARTITION¶
Applies to
SQL Server
注釈
関連性のないステートメント。
警告
このステートメントは関連性のない構文であるため、移行から削除されることに注意してください。つまり、Snowflakeでは必要ないということです。
説明¶
注釈
わかりやすくするため、出力コードの一部を省略しています。
In Transact SQL Server, the on partition statement is used inside alter statements and is used to divide the data across the database. For more information, see the SQL Server partitioned tables and indexes documentation.
サンプルソースパターン¶
On Partition¶
この例では、 ON PARTITION が削除されていることに注意してください。これは、Snowflakeが統合パーティショニング手法を提供しているためです。したがって、構文は関係ありません。
SQL に SERVER¶
Snowflake¶
PRIMARY KEY¶
Applies to
SQL Server
説明¶
注釈
わかりやすくするため、出力コードの一部を省略しています。
SQL Serverの主キーには、Snowflakeには適用できない句が多くあります。そのため、ステートメントのほとんどはコメントアウトされます。
SQL Serverでの構文¶
Snowflakeの構文¶
サンプルソースパターン¶
警告
WITH FILLFACTOR ステートメントは、Snowflake構文では関係ないため、翻訳から削除されていることに注意してください。
SQL Server¶
Snowflake¶
COLUMN DEFINITION¶
ALTER TABLE ADD column_name
Applies to
SQL Server
Azure Synapse Analytics
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
ALTER TABLE を使用してテーブルに追加される列のプロパティを指定します。
Snowflakeで 列定義 を追加する場合、 SQL Serverと比べていくつかの違いがあります。
例えば、 SQL Server の文法のいくつかの部分は、Snowflakeでは必要ないか、完全にサポートされていません。これらには次が含まれます。
Additionally, a couple other parts are partially supported, and require additional work to be implemented to properly emulate the original functionality. Specifically, we're talking about the MASKED WITH property, which will be covered in the patterns section of this page.
SQL Server¶
Snowflake¶
サンプルソースパターン¶
基本パターン¶
このパターンは、オリジナルの ALTER TABLE から要素を削除することを示しています。
SQL Server¶
Snowflake¶
COLLATE¶
照合では、文字列の比較についてより広範なルールを指定することができます。
SQL Server¶
照合ルールの命名法は SQL ServerとSnowflakeで異なるため、調整が必要です。
Snowflake¶
MASKED WITH¶
このパターンは、 MASKED WITH プロパティの翻訳を示しています。 CREATE OR REPLACE MASKING POLICY は、最初の使用前にどこかに挿入され、 SET MASKING POLICY 句によって参照されます。
新しい MASKING POLICY の名前は、以下のように、元の MASKED WITH FUNCTION の名前と引数を連結したものになります。
SQL Server¶
Snowflake¶
DEFAULT¶
このパターンは、 DEFAULT プロパティの基本的な翻訳シナリオのいくつかを示しています。
SQL Server¶
Snowflake¶
ENCRYPTED WITH¶
このパターンは、 ENCRYPTED WITH プロパティの翻訳を示しています。出力コードではコメントアウトされています。
SQL Server¶
Snowflake¶
NOT NULL¶
SQL Server NOT NULL 句は、Snowflake NOT NULL 句と同じパターンと機能を持っています
SQL Server¶
Snowflake¶
IDENTITY¶
このパターンは、 IDENTITY の翻訳を示しています。Snowflakeでは NOT FOR REPLICATION の部分が削除されます。
SQL Server¶
Snowflake¶
サポートされていない句¶
FILESTREAM¶
FILESTREAM のオリジナルの動作はSnowflakeでは複製不可能であり、 ALTER TABLE ステートメント全体をコメントアウトする価値があります。
SQL Server¶
Snowflake¶
SPARSE¶
SQL Serverでは SPARSE は、 NULL ストレージに最適化された列を定義するために使われます。しかし、Snowflakeを使用する場合、この句を使用する必要はありません。
Snowflakeは テーブルに対する最適化 を自動的に実行するため、ユーザーが手作業で最適化を行う必要がなくなります。
SQL Server¶
Snowflake¶
ROWGUIDCOL¶
SQL Server¶
Snowflake¶
既知の問題¶
1.マスキングポリシーを設定するには、事前にロールとユーザーをセットアップする必要があります
Snowflake's Masking Policies can be applied to columns only after the policies were created. This requires the user to create the policies and assign them to roles, and these roles to users, to work properly. Masking Policies can behave differently depending on which user is querying.
警告
SnowConvert AI はこの設定を自動的に行いません。
2.マスキングポリシーには、Snowflake Enterpriseアカウント以上が必要です。
The Snowflake documentation states that masking policies are available on Enterprise or higher rank accounts.
注釈
詳細については、 CREATE MASKING POLICY — Snowflakeドキュメント をご覧ください。
3.DEFAULT は定数値のみをサポートします
SQL Serverの DEFAULT プロパティは、関連する値が定数である限り、Snowflakeで部分的にサポートされています。
4. FILESTREAM 句はSnowflakeではサポートされていません。
Snowflakeではサポートされていないため、 FILESTSTREAM 句全体がコメントアウトされています。
5. SPARSE 句はSnowflakeではサポートされていません。
Snowflakeではサポートされていないため、 SPARSE 句全体がコメントアウトされています。それが ALTER COLUMN ステートメント内に追加され、それが列に対して行われる唯一の変更である場合、何も追加されなくなるため、ステートメント全体が削除されます。
関連 EWIs¶
SSC-EWI-0040: ステートメントがサポートされていません。
SSC-EWI-TS0061: ALTER COLUMN はサポートされていません。
SSC-EWI-TS0078:Snowflakeではデフォルト値は許可されていません。
SSC-FDM-TS0009:Encrypted withはSnowflakeではサポートされていません。
SSC-FDM-TS0021: MASKED WITH の代用として MASKING POLICY が作成されました。
SSC-FDM-TS0022: ユーザーは事前にマスキングロールを定義しておく必要があります。
SSC-PRF-0002 :大文字と小文字を区別しない列は、クエリのパフォーマンスを低下させる可能性があります。
COLUMN CONSTRAINT¶
ALTER TABLE ADD COLUMN ... COLUMN CONSTRAINT
Applies to
SQL Server
Azure Synapse Analytics
説明¶
Alter Tableを使用してテーブルに追加された新しい 列制約 の一部である PRIMARY KEY、 FOREIGN KEY、または CHECK のプロパティを指定します。
SQL Server¶
Snowflake¶
条件:
CHECK¶
Applies to
SQL Server
説明¶
注釈
わかりやすくするため、出力コードの一部を省略しています。
When CHECK clause is in the ALTER statement, SnowConvert AI will comment out the entire statement, since it is not supported.
サンプルソースパターン¶
SQL Server¶
Snowflake¶
既知の問題¶
1. ALTER TABLE CHECK 句はSnowflakeではサポートされていません。
Snowflakeではサポートされていないため、 ALTER TABLE CHECK 句全体がコメントアウトされています。
関連 EWIs¶
SSC-EWI-0035: チェックステートメントがサポートされていません。
FOREIGN KEY¶
Applies to
SQL Server
Azure Synapse Analytics
説明¶
The syntax for the Foreign Key is fully supported by Snowflake, except for the [ NOT FOR REPLICATION ] and the WITH CHECK clauses.
SQL Server¶
詳しくは、以下の SQL Serverドキュメント をご覧ください。
Snowflake¶
サンプルソースパターン¶
一般的なケース¶
SQL Server¶
Snowflake¶
WITH CHECK / NO CHECK ケース¶
Snowflakeロジックは外部キーの作成において CHECK 句をサポートしていないことに注意してください。WITH CHECK ステートメントはサポートされていないとマークされています。また、 WITH NO CHECK 句はSnowflakeのデフォルトの動作であり、等価性は同じであるため削除しました。
翻訳をより理解するために、以下の例をご覧ください。
SQL Server¶
Snowflake¶
既知の問題¶
1. NOT FOR REPLICATION 句。
Snowflakeは複製ケースに対して異なるアプローチを持っています。以下の ドキュメント をご覧ください。
2.WITH CHECK 句。
Snowflakeは WITH CHECK ステートメントをサポートしていません。詳細は以下の ドキュメント をご覧ください。
PRIMARY KEY / UNIQUE¶
Applies to
SQL Server
Azure Synapse Analytics
説明¶
Snowflakeでは、 PRIMARY KEY / UNIQUE 制約のオプション句はすべて削除されます。
SQL Serverでの構文