SnowConvert: Transact-Anweisungen¶
ALTER 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
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Wenn die Einschränkung, die im SQL Server-Code hinzugefügt wurde, in Snowflake überhaupt nicht unterstützt wird, kommentiert Snowconvert die CHECK CONSTRAINT-Anweisung aus, da sie nicht mehr gültig ist.
Beispielhafte Quellcode-Muster¶
SQL Server¶
ALTER TABLE
[Person].[EmailAddress] CHECK CONSTRAINT [FK_EmailAddress_Person_BusinessEntityID]
GO
Snowflake¶
!!!RESOLVE EWI!!! /*** SSC-EWI-0035 - CHECK STATEMENT NOT SUPPORTED ***/!!!
ALTER TABLE IF EXISTS Person.EmailAddress CHECK CONSTRAINT FK_EmailAddress_Person_BusinessEntityID;
Bekannte Probleme¶
1. Die ungültige CHECK CONSTRAINT -Anweisung wird auskommentiert und hinterlässt eine ungültige ALTER TABLE-Anweisung.
ADD¶
Beschreibung¶
Bemerkung
In SQL Server erlaubt die ADD-Klausel mehrere Aktionen pro ADD, während Snowflake nur eine Folge von ADD-Spaltenaktionen zulässt. Folglich unterteilt SnowConvert die ALTER TABLE ADD-Klausel in einzelne ALTER TABLE Anweisungen.
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
[x] 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 | NONCLUSTERED
WITH FILLFACTOR = fillfactor
WITH (index_option \[, …n ])
ON{ partition_scheme_name ( partition_column_name )\ \ | filegroup | „default“ }
NOT FOR REPLICATION
CHECK [ NOT FOR REPLICATION ]
Syntax in SQL Server
[ CONSTRAINT constraint_name ]
{
{ PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
(column [ ASC | DESC ] [ ,...n ] )
[ WITH FILLFACTOR = fillfactor
[ WITH ( <index_option>[ , ...n ] ) ]
[ ON { partition_scheme_name ( partition_column_name ... )
| filegroup | "default" } ]
| FOREIGN KEY
( column [ ,...n ] )
REFERENCES referenced_table_name [ ( ref_column [ ,...n ] ) ]
[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ NOT FOR REPLICATION ]
| CONNECTION
( { node_table TO node_table }
[ , {node_table TO node_table }]
[ , ...n ]
)
[ ON DELETE { NO ACTION | CASCADE } ]
| DEFAULT constant_expression FOR column [ WITH VALUES ]
| CHECK [ NOT FOR REPLICATION ] ( logical_expression )
}
Syntax in Snowflake
inlineUniquePK ::=
[ CONSTRAINT <constraint_name> ]
{ UNIQUE | PRIMARY KEY }
[ [ NOT ] ENFORCED ]
[ [ NOT ] DEFERRABLE ]
[ INITIALLY { DEFERRED | IMMEDIATE } ]
[ ENABLE | DISABLE ]
[ VALIDATE | NOVALIDATE ]
[ RELY | NORELY ]
[ CONSTRAINT <constraint_name> ]
{ UNIQUE | PRIMARY KEY }
[ [ NOT ] ENFORCED ]
[ [ NOT ] DEFERRABLE ]
[ INITIALLY { DEFERRED | IMMEDIATE } ]
[ ENABLE | DISABLE ]
[ VALIDATE | NOVALIDATE ]
[ RELY | NORELY ]
Beispielhafte Quellcode-Muster¶
Mehrere ALTER TABLE-Instanzen¶
SQL Server¶
-- PRIMARY KEY
ALTER TABLE
[Person]
ADD
CONSTRAINT [PK_EmailAddress_BusinessEntityID_EmailAddressID] PRIMARY KEY CLUSTERED (
[BusinessEntityID] ASC,
[EmailAddressID] ASC
) ON [PRIMARY]
GO
-- FOREING KEY TO ANOTHER TABLE
ALTER TABLE
[Person].[EmailAddress] WITH CHECK
ADD
CONSTRAINT [FK_EmailAddress_Person_BusinessEntityID] FOREIGN KEY([BusinessEntityID]) REFERENCES [Person].[Person] ([BusinessEntityID]) ON DELETE CASCADE
GO
Snowflake¶
-- PRIMARY KEY
ALTER TABLE Person
ADD
CONSTRAINT PK_EmailAddress_BusinessEntityID_EmailAddressID PRIMARY KEY (BusinessEntityID, EmailAddressID);
-- FOREING KEY TO ANOTHER TABLE
ALTER TABLE Person.EmailAddress
!!!RESOLVE EWI!!! /*** SSC-EWI-0035 - CHECK STATEMENT NOT SUPPORTED ***/!!!
WITH CHECK
ADD
CONSTRAINT FK_EmailAddress_Person_BusinessEntityID FOREIGN KEY(BusinessEntityID) REFERENCES Person.Person (BusinessEntityID) ON DELETE CASCADE ;
DEFAULT in Einschränkungen¶
SQL Server¶
CREATE TABLE Table1
(
COL_VARCHAR VARCHAR,
COL_INT INT,
COL_DATE DATE
);
ALTER TABLE
Table1
ADD
CONSTRAINT [DF_Table1_COL_INT] DEFAULT ((0)) FOR [COL_INT]
GO
ALTER TABLE
Table1
ADD
COL_NEWCOLUMN VARCHAR,
CONSTRAINT [DF_Table1_COL_VARCHAR] DEFAULT ('NOT DEFINED') FOR [COL_VARCHAR]
GO
ALTER TABLE
Table1
ADD
CONSTRAINT [DF_Table1_COL_DATE] DEFAULT (getdate()) FOR [COL_DATE]
GO
Snowflake¶
CREATE OR REPLACE TABLE Table1 (
COL_VARCHAR VARCHAR DEFAULT ('NOT DEFINED'),
COL_INT INT DEFAULT ((0)),
COL_DATE DATE DEFAULT (CURRENT_TIMESTAMP() :: TIMESTAMP)
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"transact"}}'
;
----** SSC-FDM-TS0020 - DEFAULT CONSTRAINT MAY HAVE BEEN ADDED TO TABLE DEFINITION **
--ALTER TABLE Table1
--ADD
-- CONSTRAINT DF_Table1_COL_INT DEFAULT ((0)) FOR COL_INT
;
ALTER TABLE Table1
ADD COL_NEWCOLUMN VARCHAR;
----** SSC-FDM-TS0020 - DEFAULT CONSTRAINT MAY HAVE BEEN ADDED TO TABLE DEFINITION **
--ALTER TABLE Table1
--ADD
--CONSTRAINT DF_Table1_COL_VARCHAR DEFAULT ('NOT DEFINED') FOR COL_VARCHAR
;
----** SSC-FDM-TS0020 - DEFAULT CONSTRAINT MAY HAVE BEEN ADDED TO TABLE DEFINITION **
--ALTER TABLE Table1
--ADD
-- CONSTRAINT DF_Table1_COL_DATE DEFAULT (CURRENT_TIMESTAMP() :: TIMESTAMP) FOR COL_DATE
;
Bekannte Probleme¶
1. DEFAULT wird nur innerhalb von CREATE TABLE
und ALTER TABLE unterstützt... ADD COLUMN
SQL Server unterstützt die Definition einer DEFAULT
-Eigenschaft innerhalb einer Einschränkung, während Snowflake dies nur erlaubt, wenn die Spalte über CREATE TABLE
oder ALTER TABLE... ADD COLUMN
hinzugefügt wird. DEFAULT
-Eigenschaften innerhalb der ADD CONSTRAINT
-Syntax werden nicht unterstützt und werden in ALTER TABLE ALTER COLUMN übersetzt.
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.
[SSC-EWI-0040](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0040): Anweisung wird nicht unterstützt.
[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.
CHECK¶
Applies to
[x] SQL Server
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Wenn die CHECK-Klausel in der ALTER-Anweisung enthalten ist, kommentiert Snowconvert die gesamte Anweisung aus, da sie nicht unterstützt wird.
Beispielhafte Quellcode-Muster¶
SQL Server¶
ALTER TABLE dbo.doc_exd
ADD CONSTRAINT exd_check CHECK NOT FOR REPLICATION (column_a > 1);
Snowflake¶
!!!RESOLVE EWI!!! /*** SSC-EWI-0035 - CHECK STATEMENT NOT SUPPORTED ***/!!!
ALTER TABLE dbo.doc_exd
ADD CONSTRAINT exd_check CHECK NOT FOR REPLICATION (column_a > 1);
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
[x] SQL Server
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Wenn die CONNECTION-Klausel in der ALTER-Anweisung enthalten ist, kommentiert Snowconvert die gesamte Anweisung aus, da sie nicht unterstützt wird.
Beispielhafte Quellcode-Muster¶
SQL Server¶
ALTER TABLE bought
ADD COL2 VARCHAR(32), CONSTRAINT EC_BOUGHT1 CONNECTION (Customer TO Product, Supplier TO Product)
ON DELETE NO ACTION;
Snowflake¶
ALTER TABLE bought
ADD COL2 VARCHAR(32);
!!!RESOLVE EWI!!! /*** SSC-EWI-0109 - ALTER TABLE SYNTAX NOT APPLICABLE IN SNOWFLAKE ***/!!!
ALTER TABLE bought
ADD
CONSTRAINT EC_BOUGHT1 CONNECTION (Customer TO Product, Supplier TO Product)
ON DELETE NO ACTION;
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
[x] SQL Server
Beschreibung¶
Wenn die DEFAULT-Klausel in der ALTER-Anweisung enthalten ist, kommentiert Snowconvert die gesamte Anweisung aus, da sie 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¶
CREATE TABLE table1
(
col1 integer not null,
col2 varchar collate Latin1_General_CS,
col3 date not null
)
ALTER TABLE table1
ADD CONSTRAINT col1_constraint DEFAULT 50 FOR col1;
ALTER TABLE table1
ADD CONSTRAINT col2_constraint DEFAULT 'hello world' FOR col2;
ALTER TABLE table1
ADD CONSTRAINT col3_constraint DEFAULT getdate() FOR col3;
Snowflake¶
CREATE OR REPLACE TABLE table1 (
col1 INTEGER not null DEFAULT 50,
col2 VARCHAR COLLATE 'EN-CS' DEFAULT 'hello world',
col3 DATE not null DEFAULT CURRENT_TIMESTAMP() :: TIMESTAMP
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"transact"}}'
;
----** SSC-FDM-TS0020 - DEFAULT CONSTRAINT MAY HAVE BEEN ADDED TO TABLE DEFINITION **
--ALTER TABLE table1
--ADD CONSTRAINT col1_constraint DEFAULT 50 FOR col1
;
----** SSC-FDM-TS0020 - DEFAULT CONSTRAINT MAY HAVE BEEN ADDED TO TABLE DEFINITION **
--ALTER TABLE table1
--ADD CONSTRAINT col2_constraint DEFAULT 'hello world' FOR col2
;
----** SSC-FDM-TS0020 - DEFAULT CONSTRAINT MAY HAVE BEEN ADDED TO TABLE DEFINITION **
--ALTER TABLE table1
--ADD CONSTRAINT col3_constraint DEFAULT CURRENT_TIMESTAMP() :: TIMESTAMP FOR col3
;
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
[x] 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.
Syntax in SQL Server¶
FOREIGN KEY
( column [ ,...n ] )
REFERENCES referenced_table_name [ ( ref_column [ ,...n ] ) ]
[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ NOT FOR REPLICATION ]
Syntax in Snowflake¶
[ FOREIGN KEY ]
REFERENCES <ref_table_name> [ ( <ref_col_name> ) ]
[ MATCH { FULL | SIMPLE | PARTIAL } ]
[ ON [ UPDATE { CASCADE | SET NULL | SET DEFAULT | RESTRICT | NO ACTION } ]
[ DELETE { CASCADE | SET NULL | SET DEFAULT | RESTRICT | NO ACTION } ] ]
[ [ NOT ] ENFORCED ]
[ [ NOT ] DEFERRABLE ]
[ INITIALLY { DEFERRED | IMMEDIATE } ]
[ ENABLE | DISABLE ]
[ VALIDATE | NOVALIDATE ]
[ RELY | NORELY ]
Beispielhafte Quellcode-Muster¶
SQL Server¶
ALTER TABLE [Tests].[dbo].[Employee]
ADD CONSTRAINT FK_Department FOREIGN KEY(DepartmentID) REFERENCES Department(DepartmentID)
ON UPDATE CASCADE
ON DELETE NO ACTION
NOT FOR REPLICATION;
Snowflake¶
ALTER TABLE Tests.dbo.Employee
ADD CONSTRAINT FK_Department FOREIGN KEY(DepartmentID) REFERENCES Department (DepartmentID)
ON UPDATE CASCADE
ON DELETE NO ACTION;
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.
Bekannte Probleme¶
Es wurden keine Probleme gefunden
Zugehörige EWIs¶
Keine zugehörigen EWIs.
ON PARTITION¶
Applies to
[x] SQL Server
Bemerkung
Nicht relevante Anweisung.
Warnung
Beachten Sie, dass diese Anweisung aus der Migration entfernt wurde, da sie eine nicht relevante Syntax darstellt. 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 wird die Anweisung on partition
innerhalb der alter
-Anweisungen verwendet und dient dazu, die Daten in der Datenbank aufzuteilen. Weitere Informationen finden Sie hier.
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.
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name UNIQUE
ON partition_scheme_name (partition_column_name);
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name UNIQUE;
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
PRIMARY KEY¶
Applies to
[x] 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
{ PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
(column [ ASC | DESC ] [ ,...n ] )
[ WITH FILLFACTOR = fillfactor
[ WITH ( <index_option>[ , ...n ] ) ]
[ ON { partition_scheme_name ( partition_column_name ... )
| filegroup | "default" } ]
Syntax in Snowflake
[ CONSTRAINT <constraint_name> ]
{ UNIQUE | PRIMARY KEY } ( <col_name> [ , <col_name> , ... ] )
[ [ NOT ] ENFORCED ]
[ [ NOT ] DEFERRABLE ]
[ INITIALLY { DEFERRED | IMMEDIATE } ]
[ ENABLE | DISABLE ]
[ VALIDATE | NOVALIDATE ]
[ RELY | NORELY ]
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
ALTER TABLE Production.TransactionHistoryArchive
ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY
CLUSTERED (TransactionID)
WITH (FILLFACTOR = 75, ONLINE = ON, PAD_INDEX = ON)
ON "DEFAULTLOCATION";
Snowflake¶
ALTER TABLE Production.TransactionHistoryArchive
ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY (TransactionID);
Bekannte Probleme¶
Es wurden keine Probleme gefunden
Zugehörige EWIs¶
Keine zugehörigen EWIs.
COLUMN DEFINITION¶
Applies to
[x] SQL Server
[x] 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:
Darüber hinaus werden einige andere Teile nur teilweise unterstützt und erfordern zusätzliche Arbeit, um die Originalfunktionalität korrekt zu emulieren. Konkret geht es um die MASKED WITH
- Eigenschaft, die im Abschnitt Muster dieser Seite behandelt wird.
Syntax in SQL Server
column_name <data_type>
[ FILESTREAM ]
[ COLLATE collation_name ]
[ NULL | NOT NULL ]
[
[ CONSTRAINT constraint_name ] DEFAULT constant_expression [ WITH VALUES ]
| IDENTITY [ ( seed , increment ) ] [ NOT FOR REPLICATION ]
]
[ ROWGUIDCOL ]
[ SPARSE ]
[ ENCRYPTED WITH
( COLUMN_ENCRYPTION_KEY = key_name ,
ENCRYPTION_TYPE = { DETERMINISTIC | RANDOMIZED } ,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
) ]
[ MASKED WITH ( FUNCTION = ' mask_function ') ]
[ <column_constraint> [ ...n ] ]
Snowflake¶
ADD [ COLUMN ] <col_name> <col_type>
[ { DEFAULT <expr> | { AUTOINCREMENT | IDENTITY } [ { ( <start_num> , <step_num> ) | START <num> INCREMENT <num> } ] } ]
/* AUTOINCREMENT (or IDENTITY) supported only for columns with numeric data types (NUMBER, INT, FLOAT, etc.). */
/* Also, if the table is not empty (i.e. rows exist in the table), only DEFAULT can be altered. */
[ inlineConstraint ]
[ [ WITH ] MASKING POLICY <policy_name> [ USING ( <col1_name> , cond_col_1 , ... ) ] ]
Beispielhafte Quellcode-Muster¶
Grundlegendes Muster¶
Dieses Muster zeigt die Entfernung von Elementen aus dem Original ALTER TABLE.
SQL Server¶
ALTER TABLE table_name
ADD column_name INTEGER;
Snowflake¶
ALTER TABLE IF EXISTS table_name
ADD column_name INTEGER;
COLLATE¶
Mit einer Sortierung können Sie umfassendere Regeln für den Vergleich von Zeichenfolgen festlegen.
SQL Server¶
ALTER TABLE table_name
ADD COLUMN new_column_name VARCHAR
COLLATE Latin1_General_CI_AS;
Da die Nomenklatur der Sortierregeln von SQL Server zu Snowflake unterschiedlich ist, müssen Sie Anpassungen vornehmen.
Snowflake¶
ALTER TABLE IF EXISTS table_name
ADD COLUMN new_column_name VARCHAR COLLATE 'EN-CI-AS' /*** SSC-PRF-0002 - CASE INSENSITIVE COLUMNS CAN DECREASE THE PERFORMANCE OF QUERIES ***/;
MASKED WITH¶
Dieses Muster zeigt die Übersetzung für MASKED WITH-Eigenschaft. CREATE OR REPLACE MASKING POLICY wird irgendwo vor der ersten Verwendung 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 zu sehen ist:
SQL Server¶
ALTER TABLE table_name
ALTER COLUMN column_name
ADD MASKED WITH ( FUNCTION = ' random(1, 999) ' );
Snowflake¶
--** SSC-FDM-TS0022 - MASKING ROLE MUST BE DEFINED PREVIOUSLY BY THE USER **
CREATE OR REPLACE MASKING POLICY "random_1_999" AS
(val SMALLINT)
RETURNS SMALLINT ->
CASE
WHEN current_role() IN ('YOUR_DEFINED_ROLE_HERE')
THEN val
ELSE UNIFORM(1, 999, RANDOM()) :: SMALLINT
END;
ALTER TABLE IF EXISTS table_name MODIFY COLUMN column_name/*** SSC-FDM-TS0021 - A MASKING POLICY WAS CREATED AS SUBSTITUTE FOR MASKED WITH ***/ SET MASKING POLICY "random_1_999";
DEFAULT¶
Dieses Muster veranschaulicht einige der grundlegenden Übersetzungsszenarien für eine DEFAULT-Eigenschaft.
SQL Server¶
ALTER TABLE table_name
ADD intcol INTEGER DEFAULT 0;
ALTER TABLE table_name
ADD varcharcol VARCHAR(20) DEFAULT '';
ALTER TABLE table_name
ADD datecol DATE DEFAULT CURRENT_TIMESTAMP;
Snowflake¶
ALTER TABLE IF EXISTS table_name
ADD intcol INTEGER DEFAULT 0;
ALTER TABLE IF EXISTS table_name
ADD varcharcol VARCHAR(20) DEFAULT '';
ALTER TABLE IF EXISTS table_name
ADD datecol DATE
!!!RESOLVE EWI!!! /*** SSC-EWI-TS0078 - DEFAULT OPTION NOT ALLOWED IN SNOWFLAKE ***/!!!
DEFAULT CURRENT_TIMESTAMP;
ENCRYPTED WITH¶
Dieses Muster veranschaulicht die Übersetzung für die Eigenschaft ENCRYPTED WITH, die im Ausgabecode auskommentiert ist.
SQL Server¶
ALTER TABLE table_name
ADD encryptedcol VARCHAR(20)
ENCRYPTED WITH
( COLUMN_ENCRYPTION_KEY = key_name ,
ENCRYPTION_TYPE = RANDOMIZED ,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
);
Snowflake¶
ALTER TABLE IF EXISTS table_name
ADD encryptedcol VARCHAR(20)
----** SSC-FDM-TS0009 - ENCRYPTED WITH NOT SUPPORTED IN SNOWFLAKE **
--ENCRYPTED WITH
-- ( COLUMN_ENCRYPTION_KEY = key_name ,
-- ENCRYPTION_TYPE = RANDOMIZED ,
-- ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
-- )
;
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¶
ALTER TABLE table2 ADD
column_test INTEGER NOT NULL,
column_test2 INTEGER NULL,
column_test3 INTEGER;
Snowflake¶
ALTER TABLE IF EXISTS table2 ADD column_test INTEGER NOT NULL;
ALTER TABLE IF EXISTS table2 ADD column_test2 INTEGER NULL;
ALTER TABLE IF EXISTS table2 ADD column_test3 INTEGER;
IDENTITY¶
Dieses Muster zeigt die Übersetzung für IDENTITY. Der Teil NOT FOR REPLICATION
wird in Snowflake entfernt.
SQL Server¶
ALTER TABLE table3 ADD
column_test INTEGER IDENTITY(1, 100) NOT FOR REPLICATION;
Snowflake¶
CREATE OR REPLACE SEQUENCE table3_column_test
START WITH 1
INCREMENT BY 100
COMMENT = 'FOR TABLE-COLUMN table3.column_test';
ALTER TABLE table3
ADD COLUMN column_test INTEGER DEFAULT table3_column_test.NEXTVAL ;
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¶
ALTER TABLE table2
ADD column1 varbinary(max)
FILESTREAM;
Snowflake¶
ALTER TABLE IF EXISTS table2
ADD column1 VARBINARY
!!!RESOLVE EWI!!! /*** SSC-EWI-0040 - THE STATEMENT IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
FILESTREAM;
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¶
-- ADD COLUMN DEFINITION form
ALTER TABLE table3
ADD column1 int NULL SPARSE;
----------------------------------------
/* It also applies to the other forms */
----------------------------------------
-- CREATE TABLE form
CREATE TABLE table3
(
column1 INT SPARSE NULL
);
-- ALTER COLUMN form
ALTER TABLE table3
ALTER COLUMN column1 INT NULL SPARSE;
Snowflake¶
-- ADD COLUMN DEFINITION form
ALTER TABLE IF EXISTS table3
ADD column1 INT NULL
!!!RESOLVE EWI!!! /*** SSC-EWI-0040 - THE STATEMENT IS NOT SUPPORTED IN SNOWFLAKE ***/!!! SPARSE;
----------------------------------------
/* It also applies to the other forms */
----------------------------------------
-- CREATE TABLE form
CREATE OR REPLACE TABLE table3
(
column1 INT
!!!RESOLVE EWI!!! /*** SSC-EWI-0040 - THE STATEMENT IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
SPARSE NULL
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"transact"}}'
;
-- ALTER COLUMN form
ALTER TABLE IF EXISTS table3
ALTER COLUMN column1
!!!RESOLVE EWI!!! /*** SSC-EWI-TS0061 - ALTER COLUMN COMMENTED OUT BECAUSE SPARSE COLUMN IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
INT NULL SPARSE;
ROWGUIDCOL¶
SQL Server¶
ALTER TABLE table_name
ADD column_name UNIQUEIDENTIFIER
ROWGUIDCOL;
Snowflake¶
ALTER TABLE IF EXISTS table_name
ADD column_name VARCHAR
!!!RESOLVE EWI!!! /*** SSC-EWI-0040 - THE STATEMENT IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
ROWGUIDCOL;
Bekannte Probleme¶
1. Rollen und Benutzer müssen zuvor für Maskierungsrichtlinien eingerichtet werden
Die Maskierungsrichtlinien von Snowflake können nur auf Spalten angewendet werden, nachdem die Richtlinien erstellt wurden. Damit dies funktioniert, muss der Benutzer die Richtlinien erstellen und sie Rollen zuweisen, und diese Rollen wiederum den Benutzern. Maskierungsrichtlinien können sich unterschiedlich verhalten, je nachdem, welcher Benutzer eine Abfrage durchführt.
SnowConvert führt diese Einrichtung nicht automatisch durch.
2. Für Maskierungsrichtlinien ist ein Snowflake Enterprise Konto oder höher erforderlich.
Höherer Rang. In der Snowflake-Dokumentation heißt es, dass die Maskierungsrichtlinien für Konten ab dem Rang Entreprise verfügbar sind.
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](../../general/technical-documentation/issues-and-troubleshooting/performance-review/README. md#ssc-prf-0002): Spalten, bei denen die Groß-/Kleinschreibung nicht beachtet wird, können die Leistung von Abfragen verringern.
COLUMN CONSTRAINT¶
Applies to
[x] SQL Server
[x] 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
Syntax in SQL Server
[ CONSTRAINT constraint_name ]
{
[ NULL | NOT NULL ]
{ PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
[ WITH FILLFACTOR = fillfactor ]
[ WITH ( index_option [, ...n ] ) ]
[ ON { partition_scheme_name (partition_column_name)
| filegroup | "default" } ]
| [ FOREIGN KEY ]
REFERENCES [ schema_name . ] referenced_table_name
[ ( ref_column ) ]
[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ NOT FOR REPLICATION ]
| CHECK [ NOT FOR REPLICATION ] ( logical_expression )
}
Syntax in Snowflake¶
CREATE TABLE <name> ( <col1_name> <col1_type> [ NOT NULL ] { inlineUniquePK | inlineFK }
[ , <col2_name> <col2_type> [ NOT NULL ] { inlineUniquePK | inlineFK } ]
[ , ... ] )
ALTER TABLE <name> ADD COLUMN <col_name> <col_type> [ NOT NULL ] { inlineUniquePK | inlineFK }
Wobei:
inlineUniquePK ::=
[ CONSTRAINT <constraint_name> ]
{ UNIQUE | PRIMARY KEY }
[ [ NOT ] ENFORCED ]
[ [ NOT ] DEFERRABLE ]
[ INITIALLY { DEFERRED | IMMEDIATE } ]
[ ENABLE | DISABLE ]
[ VALIDATE | NOVALIDATE ]
[ RELY | NORELY ]
inlineFK :=
[ CONSTRAINT <constraint_name> ]
[ FOREIGN KEY ]
REFERENCES <ref_table_name> [ ( <ref_col_name> ) ]
[ MATCH { FULL | SIMPLE | PARTIAL } ]
[ ON [ UPDATE { CASCADE | SET NULL | SET DEFAULT | RESTRICT | NO ACTION } ]
[ DELETE { CASCADE | SET NULL | SET DEFAULT | RESTRICT | NO ACTION } ] ]
[ [ NOT ] ENFORCED ]
[ [ NOT ] DEFERRABLE ]
[ INITIALLY { DEFERRED | IMMEDIATE } ]
[ ENABLE | DISABLE ]
[ VALIDATE | NOVALIDATE ]
[ RELY | NORELY ]
CHECK¶
Applies to
[x] SQL Server
Beschreibung¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Wenn die CHECK-Klausel in der ALTER-Anweisung enthalten ist, kommentiert Snowconvert die gesamte Anweisung aus, da sie nicht unterstützt wird.
Beispielhafte Quellcode-Muster¶
SQL Server¶
ALTER TABLE table_name
ADD column_name VARCHAR(255)
CONSTRAINT constraint_name
CHECK NOT FOR REPLICATION (column_name > 1);
Snowflake¶
ALTER TABLE IF EXISTS table_name
ADD column_name VARCHAR(255)
!!!RESOLVE EWI!!! /*** SSC-EWI-0035 - CHECK STATEMENT NOT SUPPORTED ***/!!!
CONSTRAINT constraint_name
CHECK NOT FOR REPLICATION (column_name > 1);
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
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Die Syntax für den Fremdschlüssel wird von SnowFlake vollständig unterstützt, mit Ausnahme der Klauseln [ NOT FOR REPLICATION ]
und WITH CHECK
.
Syntax in SQL Server¶
Lesen Sie die folgende SQL Server-Dokumentation für weitere Informationen.
[ FOREIGN KEY ]
REFERENCES [ schema_name . ] referenced_table_name
[ ( ref_column ) ]
[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ NOT FOR REPLICATION ]
Syntax in Snowflake
[ FOREIGN KEY ]
REFERENCES <ref_table_name> [ ( <ref_col_name> ) ]
[ MATCH { FULL | SIMPLE | PARTIAL } ]
[ ON [ UPDATE { CASCADE | SET NULL | SET DEFAULT | RESTRICT | NO ACTION } ]
[ DELETE { CASCADE | SET NULL | SET DEFAULT | RESTRICT | NO ACTION } ] ]
[ [ NOT ] ENFORCED ]
[ [ NOT ] DEFERRABLE ]
[ INITIALLY { DEFERRED | IMMEDIATE } ]
[ ENABLE | DISABLE ]
[ VALIDATE | NOVALIDATE ]
[ RELY | NORELY ]
Beispielhafte Quellcode-Muster¶
Allgemeiner Fall¶
SQL Server
ALTER TABLE dbo.student
ADD CONSTRAINT Fk_empid FOREIGN KEY(emp_id)
REFERENCES dbo.emp(id);
ALTER TABLE dbo.student
ADD CONSTRAINT Fk_empid FOREIGN KEY(emp_id)
REFERENCES dbo.emp(id)
NOT FOR REPLICATION;
Snowflake
ALTER TABLE dbo.student
ADD CONSTRAINT Fk_empid FOREIGN KEY(emp_id)
REFERENCES dbo.emp (id);
ALTER TABLE dbo.student
ADD CONSTRAINT Fk_empid FOREIGN KEY(emp_id)
REFERENCES dbo.emp (id);
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
ALTER TABLE testTable
WITH CHECK ADD CONSTRAINT testFK1 FOREIGN KEY (table_id)
REFERENCES otherTable (Othertable_id);
ALTER TABLE testTable
WITH NOCHECK ADD CONSTRAINT testFK2 FOREIGN KEY (table_id)
REFERENCES otherTable (Othertable_id);
Snowflake
ALTER TABLE testTable
----** SSC-FDM-0014 - CHECK STATEMENT NOT SUPPORTED **
--WITH CHECK
ADD CONSTRAINT testFK1 FOREIGN KEY (table_id)
REFERENCES otherTable (Othertable_id);
ALTER TABLE testTable
ADD CONSTRAINT testFK2 FOREIGN KEY (table_id)
REFERENCES otherTable (Othertable_id);
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.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
PRIMARY KEY / UNIQUE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Alle optionalen Klauseln der Einschränkung PRIMARY KEY / UNIQUE werden in Snowflake entfernt.
Syntax in SQL Server
{ PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
[ WITH FILLFACTOR = fillfactor ]
[ WITH ( index_option [, ...n ] ) ]
[ ON { partition_scheme_name (partition_column_name)
| filegroup | "default" } ]
Beispielhafte Quellcode-Muster¶
SQL Server¶
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name UNIQUE;
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name PRIMARY KEY
NONCLUSTERED;
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name UNIQUE
WITH FILLFACTOR = 80;
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name PRIMARY KEY
WITH (PAD_INDEX = off);
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name UNIQUE
ON partition_scheme_name (partition_column_name);
Snowflake¶
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name UNIQUE;
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name PRIMARY KEY;
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name UNIQUE;
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name PRIMARY KEY;
ALTER TABLE table_name
ADD column_name INTEGER
CONSTRAINT constraint_name UNIQUE;
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
SET¶
ANSI_NULLS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Anweisung legt die ISO-konforme Verhaltensweise der Vergleichsoperatoren Equals und Not Equal to fest, wenn sie mit Nullwerten in SQLServer verwendet werden. Bitte besuchen Sie SET ANSI_NULLS, um weitere Informationen über diese Anweisung zu erhalten.
Transact-SQL-Syntax¶
SET ANSI_NULLS { ON | OFF }
Beispielhafte Quellcode-Muster¶
SET ANSI_NULLS ON¶
_“SET ANSI_NULLS ON wirkt sich nur dann auf einen Vergleich aus, wenn einer der Operanden des Vergleichs entweder eine Variable NULL oder ein Literal NULL ist. Wenn beide Seiten des Vergleichs Spalten oder zusammengesetzte Ausdrücke sind, wirkt sich die Einstellung nicht auf den Vergleich aus.“ (SQLServer ANSI_NULLS-Artikel).
Snowflake unterstützt diese Anweisung nicht, so dass im Fall von ANSI_NULLS ON dies mit einem FDM ([SSC-FDM-TS0027](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/teradataFDM. md#ssc-fdm-td0027)) markiert ist, da es bei der Ausführung von gleichen und nicht gleichen Vergleichsoperationen keine Bedeutung hat. Hier finden Sie eine Erklärung der NULL-Behandlung in Snowflake.
SQL Server¶
SET ANSI_NULLS ON;
Snowflake¶
----** SSC-FDM-TS0027 - SET ANSI_NULLS ON STATEMENT MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE **
--SET ANSI_NULLS ON
SET ANSI_NULLS OFF¶
„Wenn ANSI_NULLS OFF ist, folgen die Vergleichsoperatoren Equal To (=
) und Not Equal To (<>
) nicht dem ISO-Standard. Eine SELECT-Anweisung, die WHERE column_name = NULL
verwendet, gibt die Zeilen zurück, die in der Spalte_name Nullwerte haben. Eine SELECT-Anweisung, die WHERE column_name <> NULL
verwendet, gibt die Zeilen zurück, die nicht-NULL Werte in der Spalte haben_“. (SQLServer ANSI_NULLS-Artikel).
Im Fall der Anweisung ANSI_NULLS OFF ist diese mit einem EWI ([SSC-EWI-0040](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0040)) gekennzeichnet, weil sie zusätzlichen manuellen Aufwand erfordert.
SQL Server¶
SET ANSI_NULLS OFF;
Snowflake¶
!!!RESOLVE EWI!!! /*** SSC-EWI-0040 - THE STATEMENT IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
SET ANSI_NULLS OFF;
Zugehörige EWIs¶
[SSC-EWI-0040](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0040): Die Anweisung wird in Snowflake nicht unterstützt
[SSC-FDM-0027](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/sqlServerFDM. md#ssc-fdm-ts0027): SET ANSI\Die Anweisung NULLS ON kann sich in Snowflake anders verhalten