SnowConvert AI – Probleme bei SQL Server Azure Synapse¶
Applies to
SQL Server
Azure Synapse Analytics
Sybase
SSC-EWI-TS0001¶
Benutzerdefinierter Funktionstext nicht generiert
Schweregrad¶
Kritisch
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird angezeigt, wenn SnowConvert AI eine kritische Ausnahme behandelt, die dazu führt, dass der Funktionstext während der Übersetzung nicht generiert wird.
Beispielcode¶
SQL Server¶
Snowflake¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0002¶
ANSI_PADDING OFF wird von Snowflake nicht unterstützt.
Schweregrad¶
Niedrig
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
In Transact-SQL entfernt die Anweisung SET ANSI_PADDING OFF die nachstehenden Leerzeichen beim Einfügen von char-Datentypen. Da SET ANSI_PADDING OFF keine direkt konfigurierbare Einstellung in Snowflake ist, generiert SnowConvert AI diese EWI.
Beispielcode¶
SQL Server¶
Snowflake¶
Best Practices¶
Fügen Sie
RTRIMzu allenCHAR()-Datentyp-Einfügungen hinzu, um dieses Problem zu beheben, einschließlich ETL-Code.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0003¶
ANSI_WARNINGS OFF wird von Snowflake nicht unterstützt.
Schweregrad¶
Niedrig
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
In Transact-SQL deaktiviert die Anweisung SET ANSI_WARNINGS OFF Warnungen wie Division durch Null oder arithmetischen Überlauf. Da SET ANSI_WARNINGS OFF keine direkt konfigurierbare Einstellung in Snowflake ist, generiert SnowConvert AI diese EWI.
Beispielcode¶
SQL Server¶
Snowflake¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0009¶
Die folgende Transaktion kann verschachtelte Transaktionen enthalten, was als komplexes Muster betrachtet wird, das von Snowflake nicht unterstützt wird.
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Schweregrad¶
Hoch
Beschreibung¶
Dieser Fehler wird hinzugefügt, um anzuzeigen, dass eine Transaktion verschachtelte Transaktionen enthalten kann. In SQL Server können Transaktionen geschachtelt werden. Das bedeutet, dass es möglich ist, innerhalb einer bereits bestehenden Transaktion eine neue Transaktion zu starten. Wenn nach der ersten BEGIN-Anweisung eine weitere ausgeführt wird, wird eine neue Transaktion geöffnet und der aktuelle Transaktionszähler um eins erhöht.
Im Gegensatz dazu wird dies in Snowflake nicht unterstützt. Die zweite BEGIN-Anweisung wird ignoriert, und es bleibt weiterhin bei einer einzigen Transaktion. Weitere Informationen dazu finden Sie unter SQL Server Transactions.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
In Snowflake verursachen verschachtelte Transaktionen keine Kompilierungsfehler, sie werden einfach ignoriert. Sie können auf die Bewertungsberichte zugreifen, um zu prüfen, ob verschachtelte Transaktionen vorhanden sind.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0010¶
Common Table Expressions in Views werden in Snowflake nicht unterstützt.
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Schweregrad¶
Hoch
Beschreibung¶
Dieser Fehler wird hinzugefügt, wenn ein ungültiges CTE in einer View enthalten ist. Views sind materialisierte Darstellungen von Abfragen, das heißt, sie definieren lediglich, wie Daten abgerufen und dargestellt werden, nicht jedoch, wie sie manipuliert werden.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Zugehörige EWI¶
SSC-EWI-0021: Nicht unterstützt.
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0013¶
Berechnete Spalte transformiert
Bemerkung
Diese EWI ist veraltet. Weitere Informationen finden Sie unter SSC-FDM-TS0013
Schweregrad¶
Niedrig
Beschreibung¶
Diese Warnung wird hinzugefügt, wenn eine berechnete Spalte aus SQL Server in ihr Snowflake-Äquivalent umgewandelt wird. Sie wurde hinzugefügt, weil in einigen Fällen die funktionale Äquivalenz beeinträchtigt werden könnte.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Es sind keine zusätzlichen Benutzeraktionen erforderlich. Dies ist nur informativ.
Fügen Sie manuelle Änderungen an dem nicht transformierten Ausdruck hinzu.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0015¶
Der Datentyp wird in Snowflake nicht unterstützt.
Schweregrad¶
Medium
Beschreibung¶
Diese Warnung wird hinzugefügt, wenn eine SQL Server-Spalte einen nicht unterstützten Typ in Snowflake hat.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Prüfen Sie die Snowflake-Datentypen Dokumentation, um eine Entsprechung für den Datentyp zu finden.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0016¶
Übersetzung für ODBC Scalar-Funktion ausstehend
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird hinzugefügt, wenn SnowConvert AI eine ODBC-Scalar-Funktion im Eingangscode findet. Benutzerdefinierte Funktionen werden in ODBC-Scalar-Funktionen nicht unterstützt.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Zugehörige EWI¶
SSC-EWI-0073: Überprüfung der gleichwertigen Funktion ausstehend.
Best Practices¶
Es sind keine zusätzlichen Benutzeraktionen erforderlich. Dies ist nur informativ.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0017¶
Maskierung nicht unterstützt
Schweregrad¶
Niedrig
Beschreibung¶
Diese EWI wird hinzugefügt, wenn SnowConvert AI eine maskierte Spalte innerhalb einer CREATE TABLE-Anweisung findet. Diese Funktion funktioniert nicht, wenn die Option in die Spaltendeklaration eingefügt wird. Manueller Aufwand ist erforderlich, um das gleiche Verhalten wie in SQL Server zu erzielen.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
SnowConvert AI generiert in der aktuellen Version keine MASKING POLICIES, sodass sie manuell erstellt werden müssen. Beispiel:
Der erste Schritt besteht darin, eine Administratorrolle für Maskierungsrichtlinien zu erstellen.
Die zweite Aufgabe besteht darin, der erstellten Rolle die erforderlichen Berechtigungen zu erteilen.
Der nächste Schritt besteht darin, die Maskierungsrichtlinienfunktionen zu erstellen.
Bemerkung
Zu Demonstrationszwecken nehmen wir einige Beispiele für Maskierungsfunktionen in SQL Server und übersetzen sie manuell in das entsprechende Äquivalent in Snowflake.
Der letzte Schritt besteht darin, die Maskierungsrichtlinie zu der Spalte hinzuzufügen, die ursprünglich die Maskierungsoption in SQL Server hatte.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0023¶
Massenoption wird nicht unterstützt
Schweregrad¶
Niedrig
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird hinzugefügt, wenn eine Option in BULK INSERT nicht zugeordnet werden konnte. Die übersetzten Massenoptionen sollten als FILE FORMAT-Optionen dargestellt werden.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Besuchen Sie die SnowSQL CLI Benutzerhandbuch.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
Zugehörige EWI¶
SSC-FDM-TS0004: PUT-Anweisung in UI nicht unterstützt.
SSC-EWI-TS0024¶
Unvollständige Transformation für Masseneinfügen
Schweregrad¶
Niedrig
Beschreibung¶
Diese EWI wird hinzugefügt, wenn ein BULK INSERT innerhalb einer gespeicherten Prozedur überhaupt nicht erkannt wurde. Dadurch können die Abhängigkeiten für die vollständige Transformation nicht erzeugt werden. Das transformierte COPY INTO ruft die Datei aus einer tempStage ab, die manuell erstellt werden muss.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
To retrieve the file, manually create a STAGE and a FILE FORMAT.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0025¶
ERROR_SEVERITY-Funktion transformiert
Schweregrad¶
Niedrig
Bemerkung
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or –PLTargetLanguage JavaScript
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird hinzugefügt, wenn die integrierte Funktion ERROR_SEVERITY übersetzt wird. Standardmäßig gibt die Funktion 16 zurück, da dies der häufigste Schweregrad in SQL Server ist. Die generierte UDF sollte es erneut versuchen
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0026¶
Wenn „Delete Query“ auf „Create Table“ gesetzt ist.
Schweregrad¶
Niedrig
Beschreibung¶
Diese EWI wird hinzugefügt, wenn ein allgemeiner Tabellenausdruck mit einem „Delete From“-Ausdruck in einen „Create Table“ oder „Replace Table“-Ausdruck umgewandelt wird.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Es sind keine weiteren Aktionen des Benutzers erforderlich.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0032¶
Masseneinfügen teilweise übersetzt
Warnung
Die EWI wird nur generiert, wenn Javascript die Zielsprache für gespeicherte Prozeduren ist. Dies ist ein veraltetes Feature für die Übersetzung, da Snowflake Scripting die empfohlene Zielsprache für gespeicherte Prozeduren ist.
Schweregrad¶
Hoch
Bemerkung
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or –PLTargetLanguage JavaScript
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird zu einem Literal hinzugefügt, das ursprünglich eine Verkettung war, wenn der enthaltene Code eine BULK INSERT-Anweisung hatte. Der Befehl PUT, der sich aus der Übersetzung BULK INSERT ergibt, wird nicht unterstützt, wenn Code ausgeführt wird, der ursprünglich Dynamic SQL war.
Aus diesem Grund muss der PUT-Befehl muss aus dem Ausgabecode extrahiert und manuell außerhalb der Prozedur ausgeführt werden, die ihn enthält. Beachten Sie, dass es ratsam ist, eine Prozedur aufzuteilen, wenn viele BULK INSERT-Anweisungen in Dynamic SQL-Sätzen in der Prozedur enthalten sind. Dadurch können Sie für jede übersetzte BULK INSERT-Funktion den entsprechenden PUT-Befehl manuell ausführen.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Extrahieren Sie den
PUT-Befehl, der aus der DynamicBULK INSERT-Anweisung resultiert, und führen Sie ihn aus, bevor Sie die Prozedur aufrufen.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0034¶
RETURNS-Klausel unvollständig aufgrund fehlender Symbole
Schweregrad¶
Hoch
Beschreibung¶
Diese EWI wird dem Ausgabecode hinzugefügt, wenn die RETURNS TABLE-Klausel einer CREATE FUNCTION nicht ordnungsgemäß generiert werden konnte. Dies geschieht, wenn die Spalten, die in der resultierenden RETURNS TABLE-Klausel angegeben werden müssen, von SnowConvert AI nicht ermittelt werden können und die RETURNS TABLE-Klausel daher leer bleibt.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Die Ursachen für dieses Problem können variieren. Stellen Sie sicher, dass Sie alle Objekte enthalten, die Ihr Code benötigt. Wenn das Problem weiterhin besteht, obwohl die Migration Zugriff auf alle erforderlichen Objekte hat, kontaktieren Sie uns mit Informationen zu Ihrem speziellen Szenario.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0035¶
Das Deklarieren einer Cursorvariablen, bei der sie nie initialisiert wurde, wird nicht unterstützt.
Schweregrad¶
Medium
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0036¶
Snowflake Scripting unterstützt nur lokale Cursor.
Schweregrad¶
Medium
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird hinzugefügt, wenn andere Cursor als lokale Cursor identifiziert werden. Derzeit unterstützt Snowflake Scripting nur lokale Cursor. Daher werden alle Cursor als lokale Cursor übersetzt.
Codebeispiel¶
Eingabecode:¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0037¶
Snowflake Scripting-Cursor sind nicht scrollbar.
Schweregrad¶
Medium
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Snowflake Scripting-Cursor sind nicht scrollbar. Derzeit wird nur FETCH NEXT unterstützt.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0039¶
Für den gleichen Cursor wurden mehrere SET-Anweisungen gefunden.
Schweregrad¶
Medium
Beschreibung¶
Diese EWI wird hinzugefügt, wenn mehrere SET-Anweisungen für denselben Cursor gefunden werden. Alle zusätzlichen SET-Anweisungen werden ebenfalls auskommentiert. Dies geschieht, weil mehrere SET-Anweisungen für denselben Cursor in Snowflake Scripting nicht zulässig sind.
Beispielcode:¶
Diese EWI wird hinzugefügt, wenn mehrere SET-Anweisungen für denselben Cursor gefunden werden. Alle zusätzlichen SET-Anweisungen werden ebenfalls auskommentiert. Dies geschieht, weil mehrere SET-Anweisungen für denselben Cursor in Snowflake Scripting nicht zulässig sind.¶
Beispielcode:¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0041¶
XML-Datentypmethoden werden in Snowflake nicht unterstützt.
Schweregrad¶
Medium
Beschreibung¶
Diese EWI wird für die folgenden XML-Datentypmethoden hinzugefügt, die in Snowflake SQL nicht unterstützt werden:
Wert
Abfrage
Vorhanden
Ändern
Knoten
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Erwägen Sie die Verwendung von UDFs, um das Verhalten des Quellcodes zu emulieren.
Sie können diese Dokumentation prüfen und einige mögliche Ansätze für die Arbeit mit XML-Datentypen in Snowflake prüfen.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0043¶
WITH XMLNAMESPACES wird von Snowflake nicht unterstützt.
Schweregrad¶
Medium
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird für die WITH XMLNAMESPACES-Klausel hinzugefügt, die von Snowflake SQL nicht unterstützt wird.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Erwägen Sie die Verwendung von UDFs, um das Verhalten des Quellcodes zu emulieren. Der folgende Code liefert Vorschläge für UDFs die verwendet werden können, um das Wiederherstellen des ursprünglichen Verhaltens zu erreichen:
SQL Server¶
Snowflake SQL¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
Zugehörige EWI¶
SSC-PRF-TS0001: Leistungswarnung – Rekursion für CTE nicht geprüft. Möglicherweise ist ein rekursives Schlüsselwort erforderlich.
SSC-EWI-TS0044: FOR XML-Klausel wird in Snowflake nicht unterstützt.
SSC-EWI-TS0015: Datentyp, der von Snowflake nicht unterstützt wird
SSC-EWI-TS0044¶
FOR XML-Klausel wird in Snowflake nicht unterstützt.
Schweregrad¶
Kritisch
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird für die FOR XML-Klausel hinzugefügt, die in Snowflake SQL nicht unterstützt wird.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Erwägen Sie die Verwendung von UDFs, um das Verhalten des Quellcodes zu emulieren. Der folgende Code liefert Vorschläge für UDFs die verwendet werden können, um das Wiederherstellen des ursprünglichen Verhaltens zu erreichen:
SQL Server
Abfrage¶
Ergebnis¶
Snowflake¶
Abfrage¶
Ergebnis¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0045¶
Beschriftete -Anweisung wird in Snowflake Scripting nicht unterstützt.
Schweregrad¶
Niedrig
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird für alle LABELS hinzugefügt, die mit der [GOTO-Anweisung](https://docs.microsoft.com/en-us/sql/t-sql/ Language-elements/goto-transact-sql?view=sql-server-ver15) in SQL Server verwendet werden.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
Zugehörige EWI¶
SSC-EWI-0073: Überprüfung der gleichwertigen Funktion ausstehend.
SSC-EWI-TS0046¶
Systemtabellen werden in Snowflake nicht unterstützt.
Schweregrad¶
Medium
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0047¶
Die Fehlermeldung RAISERROR kann aufgrund des SQL-Zeichenfolgenformats abweichen.
Bemerkung
Diese EWI ist veraltet. Weitere Informationen finden Sie unter SSC-FDM-TS0019.
Schweregrad¶
Niedrig
Beschreibung¶
Diese EWI wird hinzugefügt, um darauf hinzuweisen, dass sich die Fehlermeldung RAISERROR aufgrund des SQL-Zeichenkettenformats unterscheiden kann.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0049¶
Eine Übersetzung für If-Blöcke mit mehreren Zeilen ist für die Zukunft vorgesehen.
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Schweregrad¶
Medium
Beschreibung¶
In den meisten Fällen werden IF-Anweisungen unterstützt, die einen Begin ... End-Block in ihrem Text enthalten. Dies ist ein erfolgreicher Anwendungsfall, (bei dem kein SSC-EWI-TS0049 erzeugt wird).
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Bemerkung
In einem allgemeinen Codebeispiel (wie oben) wird die Konvertierung erfolgreich durchgeführt. Es gibt jedoch einige Grenzfälle, bei denen die „IF“-Anweisung nicht konvertiert und die EWI generiert wird.
Manuelle Unterstützung¶
Fall 1: Einzelne Anweisung¶
In diesen Fällen wäre die Transformation einfach, da die transformierte Anweisung in einer „Select“-Klausel erscheinen würde
Fall 2: Mehrere Anweisungen¶
In Fällen, in denen mehrere Anweisungen transformiert werden, sollte die N-Anweisung transformiert und als Quelltabelle für die N+1-Anweisung verwendet werden.
Fall 3: Mehrere SET-Anweisungen¶
In diesen Fällen muss für jede Mengenanweisung eine Transformation repliziert werden.
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0055¶
Die Standard-Einschränkung wurde auskommentarisiert und wurde möglicherweise zu einer Tabellendefinition hinzugefügt.
Bemerkung
Diese EWI ist veraltet. Weitere Informationen finden Sie unter SSC-FDM-TS0020.
Schweregrad¶
Medium
Beschreibung¶
Diese EWI wird hinzugefügt, wenn die Standardeinschränkung in einer Alter Table-Anweisung vorhanden ist.
Derzeit gibt es keine Unterstützung für diese Einschränkung. Eine Problemumgehung, die zur Verfügung steht, um sie umzuwandeln, besteht darin, dass die Tabelle zuvor für die Änderungstabelle definiert wurde. Auf diese Weise werden die Referenzen identifiziert, und die Standardeinschränkung wird auf die Tabellendefinition vereinheitlicht. Andernfalls wird die Einschränkung nur auskommentiert.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Bemerkung
Wenn der gesamte Inhalt der Änderungstabelle ungültig ist, wird die Änderungstabelle auskommentiert.
Bekannte Probleme¶
Wenn für dieselbe Spalte verschiedene Standardeinschränkungen deklariert sind, wird in der Anweisung „Create Table“ nur die erste berücksichtigt.
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0056¶
Eine MASKING POLICY wurde als Ersatz für MASKED WITH erstellt.
Bemerkung
Diese EWI ist veraltet. Weitere Informationen finden Sie unter SSC-FDM-TS0021.
Schweregrad¶
Niedrig
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird hinzugefügt, wenn die Alter Table-Anweisung eine MASKED WITH-Klausel enthält. Der Grund für diese Meldung ist, darauf hinzuweisen, dass eine approximative MASKING POLICY als Ersatz für die MASKED WITH-Funktion erstellt wurde.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Bemerkung
Die MASKING POLICY wird vor der ALTER TABLE-Anweisung erstellt. Es ist zu erwarten, dass das Verhalten nur ungefähr dem Original entspricht. In Bezug auf Rollen und Benutzerberechtigungen können einige Anpassungen erforderlich sein. <!– TODO: You can relate to Broken link broken-reference „mention“ for further details.>
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0057¶
Der Benutzer muss zuvor die Maskierungsrolle definieren.
Bemerkung
Diese EWI ist veraltet. Weitere Informationen finden Sie unter SSC-FDM-TS0022.
Schweregrad¶
Niedrig
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird angezeigt, wenn eine MASKING POLICY erstellt wird und eine Rolle oder Berechtigung mit ihr verknüpft werden muss, damit die Datenmaskierung ordnungsgemäß funktioniert.
Codebeispiel¶
Eingabecode¶
Generierter Code:¶
Bemerkung
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.
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0060¶
Datumszeitintervall wird von Snowflake nicht unterstützt.
Schweregrad¶
Medium
Beschreibung¶
Diese EWI wird hinzugefügt, wenn eine der folgenden Zeitkomponenten als Parameter für eine datumsbezogene Funktion verwendet wird, da sie in Snowflake nicht unterstützt werden. Weitere Informationen finden Sie unter „supported date time parts“ in der [Snowflake-Dokumentation zu Datum- und Zeitfunktionen].(https://docs.snowflake.com/en/sql-reference/functions-date-time#label-supported-date-time-parts)).
Codebeispiel¶
Eingabecode¶
Generierter Code:¶
Best Practices¶
Ein UDF könnte erstellt werden, um nicht unterstützte Zeitkomponenten in Snowflake manuell zu extrahieren.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0061¶
ALTER COLUMN wird nicht unterstützt
Schweregrad¶
Medium
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird immer dann hinzugefügt, wenn es eine nicht unterstützte ALTER COLUMN-Anweisung gibt.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0063¶
Zeitzone, die in Snowflake nicht unterstützt wird.
Schweregrad¶
Kritisch
Beschreibung¶
Diese EWI wird hinzugefügt, wenn es Zeitzonen gibt, die in Snowflake nicht unterstützt werden.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Eine benutzerdefinierte Funktion kann erstellt werden, um mehrere Zeitzonen zu unterstützen.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0067¶
Ungültige Parameter in OPENXML-Tabellenfunktion.
Schweregrad¶
Kritisch
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird hinzugefügt, wenn es in OPENXML ungültige Parameter gibt; dies gilt vor allem dann, wenn kein Zugriff auf den XML-Pfad möglich ist.
Um diese EWI zu vermeiden, senden Sie den expliziten Knotenpfad über die Parameter.
Eingabecode:¶
Generierter Code:¶
Eingabecode (expliziter Parameter)¶
Generierter Code (explizite Parameter)¶
Best Practices¶
Versuchen Sie herauszufinden, ob der Pfad explizit als Parameter übergeben werden kann.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0070¶
CURRENT_TIMESTAMP in At Time Zone-Anweisung kann in bestimmten Fällen ein anderes Verhalten aufweisen.
Bemerkung
Diese EWI ist veraltet. Weitere Informationen finden Sie unter SSC-FDM-TS0024.
Beschreibung¶
Diese EWI wird hinzugefügt, wenn „At Time Zone“ CURRENT_TIMESTAMP verwendet. Dies liegt daran, dass das Ergebnis in einigen Instanzen unterschiedliche Ergebnisse liefern kann.
Der Hauptunterschied besteht darin, dass in SQL ServerCURRENT_TIMESTAMP das aktuelle Systemdatum und die Uhrzeit in der Zeitzone des Servers zurückgibt, während in Snowflake CURRENT_TIMESTAMP das aktuelle Datum und die Uhrzeit in der UTC-(Coordinated Universal Time)-Zeitzone liefert.
Eingabecode:¶
SQL Server¶
Ergebnis¶
2024-02-08 16:52:55.317 -10:00
Generierter Code:¶
Snowflake¶
Ergebnis¶
2024-02-08 06:53:46.994 -1000
Best Practices¶
Dies ist ein Beispiel, wenn Sie das gleiche Format in Snowflake beibehalten möchten.
SQL Server¶
Ergebnis¶
2024-02-08 16:33:49.143 -10:00
In Snowflake können Sie ALTER SESSION verwenden, um die Standardzeitzone zu ändern. Beispiel:
Snowflake¶
Ergebnis¶
2024-02-08 16:33:49.143
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0072¶
Die RETURN-Anweisung wird aufgrund vorheriger RETURN-Anweisungen ignoriert.
Schweregrad¶
Niedrig
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird hinzugefügt, wenn SELECT-Anweisungen und OUPUT-Parameter zurückgegeben werden sollen. In diesem Fall haben die Resultsets von SELECT-Anweisungen Vorrang.
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Entfernen Sie die RETURN-Anweisung, die ignoriert werden soll.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
Zugehörige EWI¶
SSC-FDM-0020: In temporären Tabellen werden mehrere Resultsets zurückgegeben.
SSC-EWI-TS0073¶
Die Fehlermeldung könnte in Snowflake anders lauten.
Bemerkung
Diese EWI ist veraltet. Weitere Informationen finden Sie unter SSC-FDM-TS0023.
Schweregrad¶
Niedrig
Beschreibung¶
Diese EWI wird bei der Transformation von ERROR_MESSAGE() hinzugefügt. Die genaue Fehlermeldung kann sich in Snowflake ändern.
Eingabecode:¶
Generierter Code¶
Empfehlung¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0074¶
Das Umwandlungsergebnis kann von der TRY_CAST/TRY_CONVERT-Funktion aufgrund fehlender Abhängigkeiten abweichen.
Schweregrad¶
Niedrig
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese EWI wird bei der Transformation von TRY_CAST- und TRY_CONVERT-Funktionen hinzugefügt. Das genaue Ergebnis dieser Funktionen kann sich in Snowflake aufgrund fehlender Abhängigkeiten ändern (SnowConvert AI konnte einige Datentypen nicht auflösen). Dies könnte daran liegen, dass die Abhängigkeit nicht im Quellcode enthalten ist.
Eingabecode:¶
Generierter Code¶
Empfehlung¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0075¶
Integrierte Prozedur wird nicht unterstützt.
Schweregrad¶
Medium
Beschreibung¶
Die Übersetzung von integrierten Prozeduren wird derzeit nicht unterstützt.
Beispielcode¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Es sind keine Aktionen des Endbenutzers erforderlich.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0076¶
Standardparameter müssen möglicherweise neu angeordnet werden.
Bemerkung
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.
Schweregrad¶
Medium
Beschreibung¶
Standardparameter müssen möglicherweise neu angeordnet werden. Snowflake unterstützt nur Standardparameter am Ende der Parameterdeklaration.
Beispielcode¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Es sind keine Aktionen des Endbenutzers erforderlich.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0077¶
Collation wird nicht unterstützt.
Schweregrad¶
Niedrig
Beschreibung¶
Diese Meldung wird angezeigt, wenn es eine Sortierklausel gibt, die in Snowflake nicht unterstützt wird.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Es sind keine weiteren Aktionen des Benutzers erforderlich.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0078¶
Standardwert in Snowflake nicht zulässig.
Schweregrad¶
Medium
Beschreibung¶
Dieser Fehler wird dem Code hinzugefügt, wenn Ausdrücke wie Funktionsaufrufe, Variablennamen oder benannte Konstanten auf die Standardoption folgen.
Snowflake unterstützt nur explizite Konstanten wie Zahlen oder Zeichenfolgen.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
¶
Best Practices¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0079¶
Der Datenbank-Konsolenbefehl wird nicht unterstützt
Schweregrad¶
Medium
Beschreibung¶
Diese EWI wird hinzugefügt, wenn SnowConvert AI im Eingabecode eine DBCC-Anweisung findet. Die meisten DBCC-Anweisungen werden in Snowflake nicht unterstützt.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Es sind keine zusätzlichen Benutzeraktionen erforderlich. Dies ist nur informativ.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0080¶
Das Ändern des Ausführungskontexts zur Laufzeit wird von Snowflake nicht unterstützt.
Schweregrad¶
Hoch
Beschreibung¶
Benutzer in SQL Server können den Befehl EXECUTE AS verwenden, um den Ausführungskontext vorübergehend zu ändern. Dadurch werden die Ausführungsberechtigungen angepasst und das Ergebnis kontextabhängiger Funktionen wie USER_NAME() beeinflusst. Der REVERT-Befehl kann verwendet werden, um den Kontext vor dem letzten EXECUTE AS wiederherzustellen.
Snowflake unterstützt die Definition eines Ausführungskontexts nur in Prozeduren, und zwar entweder unter Verwendung der CREATE PROCEDURE oder der ALTER PROCEDURE-Anweisungen Das Ändern des Kontexts zur Laufzeit wird nicht unterstützt.
Codebeispiel¶
Eingabecode:
Ausgabecode:
Best Practices¶
Überarbeiten Sie den Code so, dass er funktioniert, ohne den Kontext wechseln zu müssen.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0081¶
Die Verwendung von FULL JOIN in einer DELETE-Anweisung wird nicht unterstützt
Beschreibung¶
Beim Transformieren der DELETE-Anweisung extrahiert SnowConvert AI die in der FROM-Klausel gefundenen Tabellenverweise und verschiebt sie in die USING-Klausel der Snowflake-Delete-Anweisung.
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.
Beispielcode¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Überprüfen Sie die Logik Ihres FULL JOIN. Möglicherweise kann es als anderer JOIN-Typ umgeschrieben werden. Der im Beispielcode enthaltene Code entspricht beispielsweise im Wesentlichen einem LEFT JOIN:
Eingabe
Ausgabe:
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0082¶
CROSS APPLY wurde in LEFT OUTER JOIN konvertiert und erfordert eine manuelle Validierung.
Beschreibung¶
Eine manuelle Validierung ist erforderlich, da die Konvertierung von CROSS APPLY zu LEFT OUTER JOIN möglicherweise zu falschen Ergebnissen oder unerwartetem Verhalten in Snowflake führen kann. Auch wenn die beiden Funktionen ähnlich zu sein scheinen, behandeln sie bestimmte Situationen unterschiedlich, insbesondere wenn die Unterabfrage keine Übereinstimmungen aufweist oder die Unterabfrage mit der äußeren Tabelle korreliert ist.
Beispielcode¶
Datenkonfiguration¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Wichtige Szenarien, in denen LEFT OUTER JOIN fehlschlagen kann.¶
Filterverhalten: Wenn das ursprüngliche
CROSS APPLYdazu gedacht war, Zeilen aus der Haupttabelle herauszufiltern, für die es keine Übereinstimmungen in der Unterabfrage gibt, wird einLEFT OUTER JOINdieses Verhalten nicht nachbilden. Stattdessen werden diese Zeilen mitNULL-Werten in den verknüpften Spalten einbezogen, was möglicherweise nicht dem beabsichtigten Ergebnis entspricht.Korrelierte Unterabfragen:
CROSS APPLYist speziell dafür ausgelegt, korrelierte Unterabfragen zu unterstützen, bei denen die Unterabfrage auf Spalten der äußeren Abfrage zugreift. Ein Standard-LEFT OUTER JOINunterstützt dieses Muster nicht auf die gleiche Weise. Der Versuch, ein korreliertesCROSS APPLYin einLEFT OUTERJOINumzuwandeln, kann zu Syntaxfehlern, kartesischen Produkten (duplizierten Zeilen) oder logisch falschen Ergebnissen führen.Differenzen im Resultset: Die Semantik von
CROSS APPLYundLEFT OUTER JOINunterscheidet sich, insbesondere wenn die Unterabfrage keine Zeilen zurückgibt.CROSS APPLYschließt solche Zeilen aus dem Ergebnis aus, währendLEFT OUTER JOINsie inNULL-Werte einfügt.
Empfehlung: Überprüfen und testen Sie stets die Ausgaben von Abfragen, bei denen CROSS APPLY in LEFT OUTER JOIN umgewandelt wurde, um die korrekte Funktionsweise sicherzustellen.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0083¶
Error Message¶
ROLLBACK TRANSACTION requires the appropriate setup to work as intended.
Schweregrad¶
Low
Beschreibung¶
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.
Beispielcode¶
Input (SQL Server):¶
Output (Snowflake Scripting):¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0085¶
INSERT WITH EXECUTE statement requires manual review.
Schweregrad¶
Medium
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
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.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0086¶
OPENQUERY is not supported in Snowflake.
Schweregrad¶
Hoch
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
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.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0087¶
GOTO is not supported in Snowflake.
Schweregrad¶
Hoch
Beschreibung¶
This issue is generated when SnowConvert AI encounters a GOTO statement inside a stored procedure. SQL Server supports GOTO for unconditional jumps to labeled statements within a procedure. Snowflake Scripting does not support GOTO or labeled jump targets. The GOTO statement is preserved with an EWI marker, and the associated labels also receive a separate EWI (SSC-EWI-TS0045).
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
Refactor
GOTO-based control flow into structured constructs such asIF/ELSE,CASE,LOOP, or by splitting the procedure into smaller procedures.For simple pass/fail patterns like the example above, replace the
GOTOlogic with anIF/ELSEIF/ELSEblock.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0088¶
Unsupported sequence options were removed during conversion.
Schweregrad¶
Niedrig
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
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.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0089¶
SET statement is not supported in Snowflake.
Schweregrad¶
Niedrig
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
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.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
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.
Schweregrad¶
Medium
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
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.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0091¶
Agent Job notification procedure requires manual setup of a Snowflake notification integration.
Schweregrad¶
Medium
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
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.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0092¶
Agent Job procedure references a dynamic job name that cannot be resolved statically.
Schweregrad¶
Medium
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
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.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0093¶
Agent Job procedure is not supported.
Schweregrad¶
Niedrig
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
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.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0094¶
Error Message¶
WAITFOR DELAY variable may contain a time string incompatible with SYSTEM$WAIT.
Schweregrad¶
Medium
Beschreibung¶
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.
Codebeispiel¶
Eingabecode:¶
Generierter Code:¶
Best Practices¶
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.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0095¶
SCOPE_IDENTITY() called without a preceding INSERT to an identity table in the same scope.
Schweregrad¶
High
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
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.
Codebeispiel¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
Best Practices¶
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
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0096¶
SCOPE_IDENTITY() references a table that cannot be resolved in the symbol table.
Schweregrad¶
High
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
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.
Codebeispiel¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
Best Practices¶
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
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0097¶
SCOPE_IDENTITY() references a table without an identifiable identity column.
Schweregrad¶
High
Bemerkung
Einige Teile des Ausgabecodes werden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
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.
Codebeispiel¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
Best Practices¶
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
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.
SSC-EWI-TS0098¶
CONVERT with a non-literal style cannot be mapped to a Snowflake format string.
Schweregrad¶
Medium
Beschreibung¶
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.
Codebeispiel¶
Input Code (SQL Server):¶
Generated Code (Snowflake SQL):¶
Best Practices¶
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.Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an snowconvert-support@snowflake.com senden.