SnowConvert AI – SQL Server – Azure Synapse – ALTER¶
Übersetzungsreferenz für alle DDL-Anweisungen, denen das ALTER-Schlüsselwort vorangestellt ist.
TABLE¶
Beschreibung¶
Ändert eine Tabellendefinition durch Ändern, Hinzufügen oder Löschen von Spalten und Beschränkungen. ALTER TABLE ordnet auch Partitionen neu zu und baut sie neu auf oder deaktiviert und aktiviert Beschränkungen und Trigger. (https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-transact-sql)
CHECK CONSTRAINT¶
Applies to
SQL Server
Azure Synapse Analytics
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
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.
Beispielhafte Quellcode-Muster¶
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¶
Beschreibung¶
Bemerkung
In SQL Server erlaubt die ADD-Klausel mehrere Aktionen pro ADD, während Snowflake nur eine Sequenz von ADD-Spaltenaktionen zulässt. Folglich teilt SnowConvert AI die ALTER TABLE ADD-Klausel in einzelne ALTER TABLE-Anweisungen auf.
Es gibt eine Untergruppe von Funktionen, die durch das Schlüsselwort ADD bereitgestellt werden und das Hinzufügen von verschiedenen Elementen zur Zieltabelle ermöglichen. Dazu zählen:
Definition einer Spalte
Definition der berechneten Spalte
Tabelleneinschränkung
Definition der Spaltenmenge
TABLE CONSTRAINT¶
Applies to
SQL Server
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Gibt die Eigenschaften einer PRIMARY KEY, FOREIGN KEY, UNIQUE- oder CHECK-Einschränkung an, die Teil einer neuen Spaltendefinition ist, die einer Tabelle mit Hilfe von ALTER TABLE hinzugefügt wird.(https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-column-constraint-transact-sql)
Die Übersetzung für Spalteneinschränkungen ist relativ einfach. Es gibt einige Teile der Syntax, die in Snowflake nicht erforderlich sind oder nicht unterstützt werden.
Diese Teile umfassen:
CLUSTERED | NONCLUSTEREDWITH FILLFACTOR = fillfactorWITH ( index_option [, ...n ] )ON { partition_scheme_name ( partition\_column\_name ) | filegroup | "default" }NOT FOR REPLICATIONCHECK [ NOT FOR REPLICATION ]
Syntax in SQL Server¶
Syntax in Snowflake¶
Beispielhafte Quellcode-Muster¶
Mehrere ALTER TABLE-Instanzen¶
SQL Server¶
Snowflake¶
DEFAULT in Einschränkungen¶
SQL Server¶
Snowflake¶
Bekannte Probleme¶
1. DEFAULT wird nur innerhalb von CREATE TABLE und ALTER TABLE unterstützt... 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
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
When CHECK clause is in the ALTER statement, SnowConvert AI will comment out the entire statement, since it is not supported.
Beispielhafte Quellcode-Muster¶
SQL Server¶
Snowflake¶
Bekannte Probleme¶
1. ALTER TABLE CHECK-Klausel wird in Snowflake nicht unterstützt.
Die gesamte ALTER TABLE CHECK-Klausel ist auskommentiert, da sie in Snowflake nicht unterstützt wird.
Zugehörige EWIs¶
[SSC-EWI-0035](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0035): Check-Anweisung wird nicht unterstützt.
CONNECTION¶
Applies to
SQL Server
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Wenn sich die CONNECTION-Klausel in der ALTER-Anweisung befindet, kommentiert SnowConvert AI die gesamte Anweisung aus, da die Klausel nicht unterstützt wird.
Beispielhafte Quellcode-Muster¶
SQL Server¶
Snowflake¶
Bekannte Probleme¶
1. ALTER TABLE CONNECTION-Klausel wird in Snowflake nicht unterstützt.
Die gesamte ALTER TABLE CONNECTION-Klausel ist auskommentiert, da sie in Snowflake nicht unterstützt wird.
Zugehörige EWIs¶
[SSC-EWI-0109](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0109): Die Syntax von Alter Table ist in Snowflake nicht anwendbar.
DEFAULT¶
Applies to
SQL Server
Beschreibung¶
Wenn sich die DEFAULT-Klausel in der ALTER-Anweisung befindet, kommentiert SnowConvert AI die gesamte Anweisung aus, da die Klausel nicht unterstützt wird.
Das einzige funktionierende Szenario ist, wenn sich die Tabellendefinition in derselben Datei befindet. In diesem Fall wird die Vorgabe in der Spaltendefinition hinzugefügt.
Beispielhafte Quellcode-Muster¶
SQL Server¶
Snowflake¶
Bekannte Probleme¶
1. ALTER TABLE DEFAULT-Klausel wird in Snowflake nicht unterstützt.
Die gesamte ALTER TABLE DEFAULT-Klausel ist auskommentiert, da sie in Snowflake nicht unterstützt wird.
Zugehörige EWIs¶
[SSC-FDM-TS0020](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/sqlServerFDM. md#ssc-fdm-ts0020): Die Standardeinschränkung wurde auskommentiert und möglicherweise zu einer Tabellendefinition hinzugefügt.
FOREIGN KEY¶
Applies to
SQL Server
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Snowflake unterstützt die Grammatik für referentielle Integritätseinschränkungen und deren Eigenschaften, um die Migration von anderen Datenbanken zu erleichtern.
SQL Server¶
Snowflake¶
Beispielhafte Quellcode-Muster¶
SQL Server¶
Snowflake¶
Bemerkung
Beschränkungen werden in Snowflake nicht erzwungen, mit Ausnahme von NOT NULL.
Primär- und Fremdschlüssel werden nur zu Dokumentationszwecken und nicht für Design-Einschränkungen verwendet.
ON PARTITION¶
Applies to
SQL Server
Bemerkung
Nicht relevante Anweisung.
Warnung
Beachten Sie, dass diese Anweisung aus der Migration entfernt wurde, da es sich um eine nicht relevante Syntax handelt. Das bedeutet, dass sie in Snowflake nicht erforderlich ist.
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
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.
Beispielhafte Quellcode-Muster¶
On Partition¶
Beachten Sie, dass in diesem Beispiel die ON PARTITION entfernt wurde. Das liegt daran, dass Snowflake eine integrierte Partitionierungsmethodik bietet. Die Syntax ist also nicht relevant.
SQL-SERVER¶
Snowflake¶
PRIMARY KEY¶
Applies to
SQL Server
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
SQL Der Server-Primärschlüssel hat viele Klauseln, die für Snowflake nicht gelten. Der größte Teil der Anweisung wird also auskommentiert.
Syntax in SQL Server¶
Syntax in Snowflake¶
Beispielhafte Quellcode-Muster¶
Warnung
Beachten Sie, dass die WITH FILLFACTOR-Anweisung aus der Übersetzung entfernt wurde, da sie in der Snowflake-Syntax nicht relevant ist.
SQL Server¶
Snowflake¶
COLUMN DEFINITION¶
ALTER TABLE ADD column_name
Applies to
SQL Server
Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Gibt die Eigenschaften einer Spalte an, die einer Tabelle mit Hilfe von ALTER TABLE hinzugefügt werden.
Beim Hinzufügen einer Spaltendefinition in Snowflake gibt es einige Unterschiede zu SQL Server.
So sind beispielsweise mehrere Teile der SQL Server-Grammatik nicht erforderlich oder werden von Snowflake überhaupt nicht unterstützt. Dazu zählen:
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¶
Beispielhafte Quellcode-Muster¶
Grundlegendes Muster¶
Dieses Muster zeigt die Entfernung von Elementen aus dem Original ALTER TABLE.
SQL Server¶
Snowflake¶
COLLATE¶
Mit einer Sortierung können Sie umfassendere Regeln für den Vergleich von Zeichenfolgen festlegen.
SQL Server¶
Da die Nomenklatur der Sortierregeln von SQL Server zu Snowflake unterschiedlich ist, müssen Sie Anpassungen vornehmen.
Snowflake¶
MASKED WITH¶
Dieses Muster zeigt die Übersetzung für die MASKED WITH-Eigenschaft. CREATE OR REPLACE MASKING POLICY wird vor der ersten Verwendung irgendwo eingefügt und dann durch eine SET MASKING POLICY-Klausel referenziert.
Der Name der neuen MASKING POLICY ist die Verkettung des Namens und der Argumente der ursprünglichen MASKED WITH FUNCTION, wie unten gezeigt:
SQL Server¶
Snowflake¶
DEFAULT¶
Dieses Muster veranschaulicht einige der grundlegenden Übersetzungsszenarien für eine DEFAULT-Eigenschaft.
SQL Server¶
Snowflake¶
ENCRYPTED WITH¶
Dieses Muster veranschaulicht die Übersetzung für die Eigenschaft ENCRYPTED WITH, die im Ausgabecode auskommentiert ist.
SQL Server¶
Snowflake¶
NOT NULL¶
Die SQL Server NOT NULL-Klausel hat das gleiche Muster und die gleiche Funktionalität wie die Snowflake NOT NULL-Klausel
SQL Server¶
Snowflake¶
IDENTITY¶
Dieses Muster zeigt die Übersetzung für IDENTITY. Der Teil NOT FOR REPLICATION wird in Snowflake entfernt.
SQL Server¶
Snowflake¶
Nicht unterstützte Klauseln¶
FILESTREAM¶
Die ursprüngliche Verhaltensweise von FILESTREAM ist in Snowflake nicht reproduzierbar und verdient es, die gesamte Anweisung ALTER TABLE auszukommentieren.
SQL Server¶
Snowflake¶
SPARSE¶
In SQL Server wird SPARSE verwendet, um Spalten zu definieren, die für die Speicherung auf NULL optimiert sind. Wenn wir jedoch Snowflake verwenden, müssen wir diese Klausel nicht verwenden.
Snowflake führt Optimierungen über Tabellen automatisch durch, wodurch die Notwendigkeit manueller Optimierungen durch den Benutzer verringert wird.
SQL Server¶
Snowflake¶
ROWGUIDCOL¶
SQL Server¶
Snowflake¶
Bekannte Probleme¶
1. Rollen und Benutzer müssen zuvor für Maskierungsrichtlinien eingerichtet werden
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.
Warnung
SnowConvert AI führt dieses Setup nicht automatisch durch.
2. Für Maskierungsrichtlinien ist ein Snowflake Enterprise Konto oder höher erforderlich.
The Snowflake documentation states that masking policies are available on Enterprise or higher rank accounts.
Bemerkung
Weitere Informationen finden Sie unter CREATE MASKING POLICY – Snowflake-Dokumentation.
3. DEFAULT unterstützt nur konstante Werte
SQL Die Eigenschaft DEFAULT des Servers wird von Snowflake teilweise unterstützt, solange der zugehörige Wert eine Konstante ist.
4. FILESTREAM-Klausel wird in Snowflake nicht unterstützt.
Die gesamte FILESTSTREAM-Klausel ist auskommentiert, da sie in Snowflake nicht unterstützt wird.
5. SPARSE-Klausel wird in Snowflake nicht unterstützt.
Die gesamte SPARSE-Klausel ist auskommentiert, da sie in Snowflake nicht unterstützt wird. Wenn sie innerhalb einer ALTER COLUMN-Anweisung hinzugefügt wird und die einzige Änderung an der Spalte ist, wird die gesamte Anweisung entfernt, da sie nichts mehr hinzufügt.
Zugehörige EWIs¶
[SSC-EWI-0040](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0040): Anweisung wird nicht unterstützt.
[SSC-EWI-TS0061](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/sqlServerEWI. md#ssc-ewi-ts0061): ALTER COLUMN nicht unterstützt.
[SSC-EWI-TS0078](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/sqlServerEWI. md#ssc-ewi-ts0078): Standardwert in Snowflake nicht erlaubt.
[SSC-FDM-TS0009](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/sqlServerFDM. md#ssc-fdm-ts0009): Encrypted With in Snowflake nicht unterstützt.
[SSC-FDM-TS0021](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/sqlServerFDM. md#ssc-fdm-ts0021): Es wurde ein MASKING POLICY als Ersatz für MASKED WITH erstellt.
[SSC-FDM-TS0022](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/sqlServerFDM. md#ssc-fdm-ts0022): Der Benutzer muss zuvor die Maskierungsrolle definieren.
SSC-PRF-0002: Spalten, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird, können die Leistung von Abfragen beeinträchtigen.
COLUMN CONSTRAINT¶
ALTER TABLE ADD COLUMN … COLUMN CONSTRAINT
Applies to
SQL Server
Azure Synapse Analytics
Beschreibung¶
Gibt die Eigenschaften eines PRIMARY KEY, FOREIGN KEY oder CHECK an, die Teil einer neuen Spalteneinschränkung ist, die mit Tabelle ändern. zu einer Tabelle hinzugefügt wurde
SQL Server¶
Snowflake¶
Wobei:
CHECK¶
Applies to
SQL Server
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
When CHECK clause is in the ALTER statement, SnowConvert AI will comment out the entire statement, since it is not supported.
Beispielhafte Quellcode-Muster¶
SQL Server¶
Snowflake¶
Bekannte Probleme¶
1. ALTER TABLE CHECK-Klausel wird in Snowflake nicht unterstützt.
Die gesamte ALTER TABLE CHECK-Klausel ist auskommentiert, da sie in Snowflake nicht unterstützt wird.
Zugehörige EWIs¶
[SSC-EWI-0035](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0035): Check-Anweisung wird nicht unterstützt.
FOREIGN KEY¶
Applies to
SQL Server
Azure Synapse Analytics
Beschreibung¶
The syntax for the Foreign Key is fully supported by Snowflake, except for the [ NOT FOR REPLICATION ] and the WITH CHECK clauses.
SQL Server¶
Lesen Sie die folgende SQL Server-Dokumentation für weitere Informationen.
Snowflake¶
Beispielhafte Quellcode-Muster¶
Allgemeiner Fall¶
SQL Server¶
Snowflake¶
WITHCHECK / NOCHECK-Fall¶
Beachten Sie, dass die Snowflake-Logik die CHECK-Klausel bei der Erstellung von Fremdschlüsseln nicht unterstützt. Die Anweisung WITH CHECK wird als nicht unterstützt markiert. Außerdem wird die WITH NO CHECK-Klausel entfernt, da dies das Standardverhalten in Snowflake ist und die Äquivalenz die gleiche ist.
Bitte sehen Sie sich die folgenden Beispiele an, um ein besseres Verständnis der Übersetzung zu erhalten.
SQL Server¶
Snowflake¶
Bekannte Probleme¶
1. NOT FOR REPLICATION-Klausel.
Snowflake hat einen anderen Ansatz für die Replikationsfälle. Bitte sehen Sie sich die folgende Dokumentation an.
2. WITHCHECK-Klausel.
Snowflake unterstützt die WITH CHECK-Anweisung nicht. In der folgenden Dokumentation finden Sie weitere Informationen.
PRIMARY KEY / UNIQUE¶
Applies to
SQL Server
Azure Synapse Analytics
Beschreibung¶
Alle optionalen Klauseln der Einschränkung PRIMARY KEY / UNIQUE werden in Snowflake entfernt.
Syntax in SQL Server