SnowConvert AI - Problèmes SQL Server-Azure Synapse¶
Applies to
SQL Server
Azure Synapse Analytics
Sybase
SSC-EWI-TS0001¶
Corps de la fonction définie par l’utilisateur non généré
Gravité¶
Critique
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI apparaît lorsque SnowConvert AI gère une exception critique qui empêche le corps de la fonction d’être généré pendant sa traduction.
Exemple de code¶
SQL Server¶
Snowflake¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0002¶
L’ANSI_PADDING OFF n’est pas pris en charge dans Snowflake.
Gravité¶
Faible
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Dans Transact-SQL, l’instruction SET ANSI_PADDING OFF supprime les espaces de fin dans l’insertion des types de données Char. Étant donné que l’instruction SET ANSI_PADDING OFF n’est pas un paramètre directement configurable dans Snowflake, SnowConvert AI générera cet EWI.
Exemple de code¶
SQL Server¶
Snowflake¶
Meilleures pratiques¶
Ajoutez
RTRIMà toutes les insertions des types de donnéesCHAR()pour résoudre ce problème, y compris le code ETL.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0003¶
L’ANSI_WARNINGS OFF n’est pas pris en charge dans Snowflake.
Gravité¶
Faible
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Dans Transact-SQL, l’instruction SET ANSI_WARNINGS OFF désactive les avertissements tels que la division par zéro ou le débordement arithmétique. Étant donné que l’instruction SET ANSI_WARNINGS OFF n’est pas un paramètre directement configurable dans Snowflake, SnowConvert AI générera cet EWI.
Exemple de code¶
SQL Server¶
Snowflake¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0009¶
La transaction suivante peut contenir des transactions imbriquées. Cela est considéré comme un modèle complexe qui n’est pas pris en charge dans Snowflake.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Élevé
Description¶
Cette erreur est ajoutée pour indiquer lorsqu’une transaction peut contenir des transactions imbriquées. Dans SQL Server, les transactions peuvent être imbriquées. Cela signifie qu’il est possible de démarrer une nouvelle transaction à l’intérieur d’une transaction existante. Si après la première instruction BEGIN, une autre instruction est exécutée, une nouvelle transaction sera ouverte, et le nombre de transactions en cours sera augmenté d’un.\
En revanche, cela n’est pas pris en charge dans Snowflake. Par conséquent, la deuxième instruction BEGIN sera ignorée, et il n’y aura toujours qu’une seule transaction. Pour plus d’informations, veuillez vous référer aux transactions SQL Server.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Dans Snowflake, les transactions imbriquées ne provoqueront pas d’erreurs de compilation. Elles seront simplement ignorées. Vous pouvez accéder aux rapports d’évaluation pour vérifier si les transactions imbriquées sont présentes.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0010¶
L’expression de table commune dans la vue n’est pas prise en charge dans Snowflake.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Élevé
Description¶
Cette erreur est ajoutée lorsqu’une CTE non valide se trouve à l’intérieur d’une vue, car les vues sont des représentations matérialisées de requêtes, ce qui signifie qu’elles définissent uniquement la manière dont les données sont extraites et présentées, et non la manière dont elles sont manipulées.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
connexesEWI¶
SSC-EWI-0021 : non pris en charge.
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0013¶
Colonne calculée transformée
Note
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-FDM-TS0013.
Gravité¶
Faible
Description¶
Cet avertissement est ajouté lorsqu’une colonne calculée SQL Server est transformée en son équivalent Snowflake. Elle est ajoutée car, dans certains cas, l’équivalence fonctionnelle pourrait être affectée.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Aucune action supplémentaire de la part de l’utilisateur n’est requise. Cet avertissement est simplement donné à titre informatif.
Ajoutez des modifications manuelles à l’expression non transformée.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0015¶
Le type de données n’est pas pris en charge dans Snowflake.
Gravité¶
Medium
Description¶
Cet avertissement est ajouté lorsqu’une colonne SQL Server possède un type non pris en charge dans Snowflake.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Consultez la [documentation] relative aux types de données de Snowflake(https://docs.snowflake.com/fr/sql-reference/data-types.html) pour trouver un équivalent pour le type de données.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0016¶
Traduction de la fonction ODBC Scalar en attente
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté lorsque SnowConvert AI trouve une fonction ODBC Scalar dans le code d’entrée.\ Les fonctions définies par l’utilisateur ne sont pas prises en charge dans la fonctionODBC Scalar.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
connexesEWI¶
SSC-EWI-0073 : examen de l’équivalence fonctionnelle en attente.
Meilleures pratiques¶
Aucune action supplémentaire de la part de l’utilisateur n’est requise. Cet avertissement est simplement donné à titre informatif.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0017¶
Masquage non pris en charge
Gravité¶
Faible
Description¶
Cet EWI est ajouté lorsque SnowConvert AI trouve une colonne masquée à l’intérieur d’une instruction CREATE TABLE. Cette fonctionnalité ne s’active pas en ajoutant l’option dans la déclaration de colonne. Une intervention manuelle est nécessaire pour obtenir le même comportement que dans SQL Server.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
SnowConvert AI ne génère pas de MASKING POLICIES dans la version actuelle. Elles doivent donc être créées manuellement. Par ex. :
La première étape consiste à créer un rôle d’administrateur pour la politique de masquage.
La deuxième étape consiste à accorder les privilèges nécessaires au rôle créé.
L’étape suivante consiste à créer les fonctions de la politique de masquage.
Note
À titre indicatif, nous prenons quelques exemples de fonctions de masquage dans SQL Server, et nous les traduisons manuellement en leur équivalent dans Snowflake.
L’étape finale consiste à ajouter la politique de masquage à la colonne qui avait à l’origine l’option de masquage dans SQL Server.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0023¶
Option Bulk non prise en charge
Gravité¶
Faible
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté lorsqu’une option dans une instruction BULK INSERT n’a pas pu être mappée. Les options Bulk traduites doivent être reflétées en tant qu’options FILE FORMAT.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Consultez le [guide de l’utilisateur] de SnowSQL CLI (https://docs.snowflake.com/fr/user-guide/snowsql.html).
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
connexesEWI¶
SSC-FDM-TS0004 : instruction PUT non prise en charge sur l’UI.
SSC-EWI-TS0024¶
Transformation incomplète pour Bulk Insert
Gravité¶
Faible
Description¶
Cet EWI est ajouté lorsqu’une instruction BULK INSERT à l’intérieur d’une procédure stockée n’a pas été identifiée du tout. Ainsi, les dépendances pour la transformation complète ne seront pas générées. Par ailleurs, l’instruction COPY INTO transformée récupère le fichier à partir d’une tempStage qui doit être créée manuellement.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
To retrieve the file, manually create a STAGE and a FILE FORMAT.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0025¶
Fonction ERROR_SEVERITY transformée
Gravité¶
Faible
Note
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or –PLTargetLanguage JavaScript
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté lorsque la fonction intégrée ERROR_SEVERITY est traduite. Par défaut, la fonction renverra 16, car il s’agit de la gravité la plus courante dans SQL Server. L’UDF générée devrait procéder à une récupération.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0026¶
Requête With Delete transformée en Create Table.
Gravité¶
Faible
Description¶
Cet EWI est ajouté lorsqu’une expression de table commune avec une clause Delete From est transformée en une clause Create ou Replace Table.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Aucune autre action de l’utilisateur n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0032¶
Bulk Insert partiellement traduite
Avertissement
L’EWI n’est généré que lorsque Javascript est le langage cible pour les procédures stockées. Il s’agit d’une fonctionnalité de traduction obsolète, car l’Exécution de scripts Snowflake est le langage cible recommandé pour les procédures stockées.
Gravité¶
Élevé
Note
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or –PLTargetLanguage JavaScript
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté à un littéral qui était à l’origine une concaténation, alors que le code contenu comprenait une instruction BULK INSERT. La commande PUT résultant de la traduction de BULK INSERT n’est pas prise en charge lors de l’exécution du code qui était à l’origine un SQL dynamique.
C’est pourquoi la commande PUT doit être extraite du code de sortie et exécutée manuellement en dehors de la procédure qui la contient. Gardez à l’esprit que s’il existe beaucoup d’instructions BULK INSERT dans les phrases SQL dynamiques de la procédure, il est conseillé de diviser cette procédure pour pouvoir exécuter manuellement la commande PUT correspondante pour chaque instruction BULK INSERT traduite.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Extrayez la commande
PUTrésultant de l’instruction dynamiqueBULK INSERT, puis exécutez-la avant d’appeler la procédure.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0034¶
Clause RETURNS incomplète en raison de symboles manquants
Gravité¶
Élevé
Description¶
Cet EWI est ajouté au code de sortie lorsque la clause RETURNS TABLE d’une FUNCTION CREATE n’a pas pu être générée correctement. Cela se produit lorsque les colonnes qui doivent être spécifiées dans la clause RETURNS TABLE résultante ne peut pas être inférée par SnowConvert AI, laissant ainsi la clause RETURNS TABLE vide.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Les causes de ce problème peuvent varier. Veillez à inclure tous les objets dont votre code a besoin. Si le problème persiste alors que la migration a accès à tous les objets nécessaires, veuillez nous contacter avec des informations sur votre scénario spécifique.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0035¶
La déclaration d’une variable de curseur qui n’est jamais initialisée n’est pas prise en charge.
Gravité¶
Medium
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0036¶
L’Exécution de scripts Snowflake ne prend en charge que les curseurs locaux.
Gravité¶
Medium
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté lorsque des curseurs autres que des curseurs locaux sont identifiés. Actuellement, l’Exécution de scripts Snowflake ne prend en charge que les curseurs locaux. Ainsi, tous les curseurs sont traduits en tant que curseurs locaux.
Exemple de code¶
Code d’entrée :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0037¶
Les curseurs de l’Exécution de scripts Snowflake ne peuvent pas être déroulés.
Gravité¶
Medium
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Les curseurs de l’Exécution de scripts Snowflake ne peuvent pas être déroulés. Actuellement, seul FETCH NEXT est pris en charge.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0039¶
Plusieurs instructions SET pour le même curseur ont été trouvées.
Gravité¶
Medium
Description¶
Cet EWI est ajouté lorsque plusieurs instructions SET pour le même curseur sont trouvées. Toutes les instructions SET sont également commentées. Cela se produit, car avoir plusieurs instructions SET pour le même curseur n’est pas valide dans l’Exécution de scripts Snowflake.
Exemple de code :¶
Cet EWI est ajouté lorsque plusieurs instructions SET pour le même curseur sont trouvées. Toutes les instructions SET sont également commentées. Cela se produit, car avoir plusieurs instructions SET pour le même curseur n’est pas valide dans l’Exécution de scripts Snowflake.¶
Exemple de code :¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0041¶
Les méthodes des types de données XML ne sont pas prises en charge dans Snowflake.
Gravité¶
Medium
Description¶
Cet EWI est ajouté pour les méthodes des types de données XML qui ne sont pas prises en charge dans Snowflake SQL :
Valeur
Requête
Existe
Modifier
Nœuds
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Envisagez d’utiliser des UDFs pour émuler le comportement du code source.
Vous pouvez consulter cette documentation et examiner quelques approches possibles pour travailler avec les types de données XML dans Snowflake.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0043¶
WITH XMLNAMESPACES n’est pas pris en charge dans Snowflake.
Gravité¶
Medium
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté pour la clause WITH XMLNAMESPACES qui n’est pas prise en charge dans Snowflake SQL.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Envisagez d’utiliser des UDFs pour émuler le comportement du code source. Le code suivant fournit des suggestions d’UDFs qui peuvent être utilisées pour recréer le comportement d’origine :
SQL Server¶
Snowflake SQL¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
connexesEWI¶
SSC-PRF-TS0001 : Avertissement lié aux performances - Récursivité pour la CTE non vérifiée. Peut nécessiter un mot-clé récursif.
SSC-EWI-TS0044 : la clause FOR XML n’est pas prise en charge dans Snowflake.
SSC-EWI-TS0015 : type de données non pris en charge dans Snowflake.
SSC-EWI-TS0044¶
La clause FOR XML n’est pas prise en charge dans Snowflake.
Gravité¶
Critique
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté pour la clause FOR XML qui n’est pas prise en charge dans Snowflake SQL.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Envisagez d’utiliser des UDFs pour émuler le comportement du code source. Le code suivant fournit des suggestions d’UDFs qui peuvent être utilisées pour recréer le comportement d’origine :
SQL Server
Requête¶
Résultat¶
Snowflake¶
Requête¶
Résultat¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0045¶
L’instruction balisée n’est pas prise en charge dans l’Exécution de scripts Snowflake.
Gravité¶
Faible
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté pour tous les LABELS utilisés avec l’instruction GOTO dans SQL Server.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
connexesEWI¶
SSC-EWI-0073 : examen de l’équivalence fonctionnelle en attente.
SSC-EWI-TS0046¶
La table système n’est pas prise en charge dans Snowflake.
Gravité¶
Medium
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0047¶
Le message d’erreur RAISERROR peut différer à cause du format de chaîne SQL Server.
Note
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-FDM-TS0019.
Gravité¶
Faible
Description¶
Cet EWI est ajouté pour notifier que le message d’erreur RAISERROR peut différer à cause du format de chaîne SQL Server.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0049¶
La traduction Multiple Line if Body devrait être disponible prochainement.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Gravité¶
Medium
Description¶
La plupart des cas dans les instructions IF contenant un bloc Begin … End dans leur corps sont pris en charge. Il s’agit d’un scénario réussi (pas de SSC-EWI-TS0049 généré).
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Note
Dans un exemple de code général (comme celui ci-dessus), la conversion est correctement effectuée. Cependant, il existe des cas limites où l’instruction « IF » n’est pas convertie et où l’EWI sera généré.
Support manuel¶
Cas 1 : instruction unique¶
Pour ces cas, la transformation serait simple, car l’instruction transformée apparaîtrait dans une clause Select.
Cas 2 : instructions multiples¶
Pour les cas où plusieurs instructions sont transformées, il convient de transformer l’instruction N et de l’utiliser comme table source pour l’instruction N+1.
Cas 3 : instructions d’ensembles multiples¶
Pour ces cas, il sera nécessaire de répliquer une transformation pour chaque instruction Set.
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0055¶
La contrainte par défaut a été commentée et peut avoir été ajoutée à une définition de table.
Note
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-FDM-TS0020.
Gravité¶
Medium
Description¶
Cet EWI est ajouté lorsque la contrainte par défaut est présente dans une instruction Alter Table.
Actuellement, cette contrainte n’est pas prise en charge. Une solution de contournement permettant de la transformer consiste à définir préalablement la table avec Alter Table. De cette manière, nous identifions les références, et la contrainte par défaut est unifiée sur la définition de la table. Sinon, la contrainte est uniquement commentée.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Note
Si tout le contenu d’Alter Table n’est pas valide, Alter Table est commentée.
Problèmes connus¶
Lorsque différentes contraintes par défaut seront déclarées sur la même colonne, seule la première sera reflétée dans l’instruction Create Table.
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0056¶
Une MASKING POLICY a été créée en tant que substitut pour MASKED WITH.
Note
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-FDM-TS0021.
Gravité¶
Faible
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté lorsque l’instruction Alter Table contient une clause MASKED WITH. Celui-ci est ajouté pour indiquer qu’une valeur approximative MASKING POLICY a été créée en tant que substitut pour la fonction MASKED WITH.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Note
La MASKING POLICY sera créée avant l’instruction ALTER TABLE. De plus, elle devrait avoir un comportement similaire. Quelques ajustements peuvent être nécessaires en ce qui concerne les rôles et les privilèges des utilisateurs. <!– TODO: You can relate to Broken link broken-reference « mention » for further details.>
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0057¶
L’utilisateur doit préalablement définir le rôle de masquage.
Note
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-FDM-TS0022.
Gravité¶
Faible
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI se produit lorsqu’une MASKING POLICY est créée et qu’un rôle ou privilège doit y être lié pour que le masquage des données puisse fonctionner correctement.
Exemple de code¶
Code d’entrée¶
Code généré :¶
Note
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.
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0060¶
Intervalle de date et d’heure non pris en charge par Snowflake.
Gravité¶
Medium
Description¶
Cet EWI est ajouté lorsque l’une des parties d’heure suivantes est utilisée comme paramètre pour une fonction liée à une date, car elles ne sont pas prises en charge dans Snowflake. Pour plus d’informations, accédez à « Parties de date et d’heure prises en charge » (Fonctions de date et d’heure | Documentation Snowflake).
Exemple de code¶
Code d’entrée¶
Code généré :¶
Meilleures pratiques¶
Une UDF pourrait être créée pour extraire manuellement des parties d’heure non prises en charge dans Snowflake.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0061¶
ALTER COLUMN non pris en charge
Gravité¶
Medium
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté chaque fois qu’il y a une instruction ALTER COLUMN non prise en charge.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0063¶
Fuseau horaire non pris en charge dans Snowflake.
Gravité¶
Critique
Description¶
Cet EWI est ajouté lorsqu’il y a des fuseaux horaires qui ne sont pas pris en charge dans Snowflake.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Une fonction définie par l’utilisateur peut être créée pour prendre en charge plusieurs fuseaux horaires.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0067¶
Paramètres non valides dans la fonction à valeur de table OPENXML.
Gravité¶
Critique
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté lorsqu’il y a des paramètres non valides dans l’OPENXML, en particulier lorsqu’il n’est pas possible d’accéder au chemin XML.
Pour éviter cet EWI, veuillez envoyer le chemin au nœud explicite via les paramètres.
Code d’entrée :¶
Code généré :¶
Code d’entrée (paramètre explicite)¶
Code généré (paramètre explicite)¶
Meilleures pratiques¶
Essayez de voir si le chemin peut être explicitement transmis en tant que paramètre.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0070¶
CURRENT_TIMESTAMP dans l’instruction At Time Zone peut avoir un comportement différent dans certains cas.
Note
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-FDM-TS0024.
Description¶
Cet EWI est ajouté lorsque At Time Zone contient le CURRENT_TIMESTAMP. En effet, des résultats différents peuvent survenir dans certains cas.
La principale différence est que dans SQL Server, CURRENT_TIMESTAMP renvoie la date et l’heure actuelles du système dans le fuseau horaire du serveur, tandis que dans Snowflake, CURRENT_TIMESTAMP renvoie la date et l’heure actuelles dans le fuseau horaire UTC (temps universel coordonné).
Code d’entrée :¶
SQL Server¶
Résultat¶
2024-02-08 16:52:55.317 -10:00
Code généré :¶
Snowflake¶
Résultat¶
2024-02-08 06:53:46.994 -1000
Meilleures pratiques¶
Ceci est un exemple si vous souhaitez conserver le même format dans Snowflake.
SQL Server¶
Résultat¶
2024-02-08 16:33:49.143 -10:00
Dans Snowflake, vous pouvez utiliser ALTER SESSION pour modifier le fuseau horaire par défaut. Par exemple :
Snowflake¶
Résultat¶
2024-02-08 16:33:49.143
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0072¶
L’instruction RETURN sera ignorée en raison de la précédente instruction RETURN.
Gravité¶
Bas
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté lorsque les instructions SELECT et les paramètres OUPUT doivent être renvoyés. Dans ce cas, les jeux de résultats des instructions SELECT sont prioritaires.
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Supprimez l’instruction RETURN qui doit être ignorée.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
connexesEWI¶
SSC-FDM-0020 : plusieurs jeux de résultats sont renvoyés dans des tables temporaires.
SSC-EWI-TS0073¶
Le message d’erreur pourrait être différent dans Snowflake.
Note
Cet EWI est obsolète. Veuillez vous référer à la documentation SSC-FDM-TS0023.
Gravité¶
Faible
Description¶
Cet EWI est ajouté dans la transformation de ERROR_MESSAGE(). Le message exact de l’erreur pourrait changer dans Snowflake.
Code d’entrée :¶
Code généré¶
Recommandation¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0074¶
Le résultat de la conversion peut être différent de la fonction TRY_CAST/TRY_CONVERT en raison de dépendances manquantes.
Gravité¶
Faible
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Cet EWI est ajouté dans la transformation des fonctions TRY_CAST et TRY_CONVERT. Le résultat exact de ces fonctions peut changer dans Snowflake en raison de dépendances manquantes (SnowConvert AI n’a pas pu résoudre certains types de données). Cela peut être dû au fait que la dépendance ne figurait pas dans le code source.
Code d’entrée :¶
Code généré¶
Recommandation¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0075¶
Procédure intégrée non prise en charge.
Gravité¶
Medium
Description¶
La traduction pour les procédures intégrées n’est pas prise en charge actuellement.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Aucune action de la part de l’utilisateur final n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0076¶
Il peut être nécessaire de réorganiser les paramètres par défaut.
Note
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.
Gravité¶
Medium
Description¶
Il peut être nécessaire de réorganiser les paramètres par défaut. Snowflake ne prend en charge les paramètres par défaut qu’à l’issue des déclarations de paramètres.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Aucune action de la part de l’utilisateur final n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0077¶
Classement non pris en charge
Gravité¶
Faible
Description¶
Ce message s’affiche lorsqu’il existe une clause de classement qui n’est pas prise en charge dans Snowflake.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Aucune autre action de l’utilisateur n’est requise.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0078¶
La valeur par défaut n’est pas autorisée dans Snowflake.
Gravité¶
Medium
Description¶
Cette erreur est ajoutée au code lorsque des expressions telles que des appels de fonctions, des noms de variables ou des constantes nommées suivent l’option par défaut.
Snowflake ne prend en charge que les constantes explicites telles que les nombres ou les chaînes.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
¶
Meilleures pratiques¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0079¶
La commande de console de base de données n’est pas prise en charge.
Gravité¶
Medium
Description¶
Cet EWI est ajouté lorsque SnowConvert AI trouve une instruction DBCC à l’intérieur du code d’entrée.\ La plupart des instructions DBCC ne sont pas prises en charge dans Snowflake.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Aucune action supplémentaire de la part de l’utilisateur n’est requise. Cet avertissement est simplement donné à titre informatif.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0080¶
La modification du contexte d’exécution au moment de l’exécution n’est pas prise en charge dans Snowflake.
Gravité¶
Élevé
Description¶
Les utilisateurs dans SQL Server peuvent utiliser la commande EXECUTE AS pour modifier temporairement le contexte d’exécution. Cela modifie les privilèges d’exécution et affecte les résultats des fonctions dépendantes du contexte comme USER_NAME(). La commande REVERT peut être utilisée pour restaurer le contexte précédent à la dernière commande EXECUTE AS.
Snowflake ne prend en charge que la définition d’un contexte d’exécution dans les procédures, en utilisant les instructions CREATE PROCEDURE ou ALTER PROCEDURE. La modification du contexte au moment de l’exécution n’est pas prise en charge.
Exemple de code¶
Code d’entrée :
Code de sortie :
Meilleures pratiques¶
Refactorisez le code de sorte qu’il fonctionne sans avoir à changer de contexte.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0081¶
L’utilisation d’une jointure complète dans une instruction de suppression n’est pas prise en charge.
Description¶
Lors de la transformation de l’instruction DELETE, SnowConvert AI extrait les références de table trouvées dans la clause FROM de l’instruction et les déplace vers la clause USING de l’instruction de suppression Snowflake.
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Vérifiez la logique de votre JOIN FULL. Il peut être possible de la réécrire sous un autre type de JOIN. Par exemple, le code inclus dans l’exemple de code est essentiellement le même qu’une JOIN LEFT :
Entrée :
Sortie :
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0082¶
CROSS APPLY a été convertie en JOIN LEFT OUTER et nécessite une validation manuelle.
Description¶
Une validation manuelle est nécessaire, car la conversion de CROSS APPLY en JOIN LEFT OUTER peut entraîner des résultats incorrects ou un comportement inattendu dans Snowflake. Bien que les deux fonctions puissent paraître similaires, elles traitent certaines situations différemment, en particulier lorsque la sous-requête n’a pas de correspondance ou qu’elle est corrélée avec la table externe.
Exemple de code¶
Données de configuration¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
Scénarios clés où une JOIN LEFT OUTER peut échouer¶
Comportement de filtrage : si la
CROSS APPLYd’origine était destinée à filtrer les lignes de la table principale qui ne correspondent pas à la sous-requête, uneJOIN LEFT OUTERne répliquera pas ce comportement. Au lieu de cela, elle inclura ces lignes avec des valeursNULLpour les colonnes jointes, ce qui peut ne pas correspondre au résultat prévu.Sous-requêtes corrélées :
CROSS APPLYest spécifiquement conçue pour prendre en charge les sous-requêtes corrélées, où la sous-requête fait référence à des colonnes de la requête externe. UneJOIN LEFT OUTERstandard ne prend pas en charge ce schéma de la même manière. Tenter de convertir une sous-requête corréléeCROSS APPLYen uneJOIN LEFT OUTERpeut conduire à des erreurs de syntaxe, des produits cartésiens (lignes dupliquées) ou des résultats logiquement incorrects.Différences de jeux de résultats : les sémantiques de
CROSS APPLYet d’uneJOIN LEFT OUTERdiffèrent, en particulier lorsque la sous-requête ne renvoie aucune ligne.CROSS APPLYexclura ces lignes du résultat, tandis qu‘uneJOIN LEFT OUTERles inclura avec des valeursNULL.
Recommandation : examinez et testez toujours la sortie des requêtes où CROSS APPLY a été convertie en JOIN LEFT OUTER pour en assurer l’exactitude.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0083¶
Error Message¶
ROLLBACK TRANSACTION requires the appropriate setup to work as intended.
Gravité¶
Low
Description¶
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.
Exemple de code¶
Input (SQL Server):¶
Output (Snowflake Scripting):¶
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0085¶
INSERT WITH EXECUTE statement requires manual review.
Gravité¶
Medium
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
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.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0086¶
OPENQUERY is not supported in Snowflake.
Gravité¶
Élevé
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
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.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0087¶
GOTO is not supported in Snowflake.
Gravité¶
Élevé
Description¶
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).
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
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.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0088¶
Unsupported sequence options were removed during conversion.
Gravité¶
Faible
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
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.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0089¶
SET statement is not supported in Snowflake.
Gravité¶
Faible
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
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.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
Related EWIs¶
SSC-FDM-TS0037: SET statement with equivalent default behavior in Snowflake (e.g.,
SET CONCAT_NULL_YIELDS_NULL ON).
SSC-EWI-TS0090¶
Agent Job step uses an unsupported subsystem and requires manual migration.
Gravité¶
Medium
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
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.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0091¶
Agent Job notification procedure requires manual setup of a Snowflake notification integration.
Gravité¶
Medium
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
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.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0092¶
Agent Job procedure references a dynamic job name that cannot be resolved statically.
Gravité¶
Medium
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
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.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0093¶
Agent Job procedure is not supported.
Gravité¶
Faible
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
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.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0094¶
Error Message¶
WAITFOR DELAY variable may contain a time string incompatible with SYSTEM$WAIT.
Gravité¶
Medium
Description¶
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.
Exemple de code¶
Code d’entrée :¶
Code généré :¶
Meilleures pratiques¶
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.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0095¶
SCOPE_IDENTITY() called without a preceding INSERT to an identity table in the same scope.
Gravité¶
High
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
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.
Exemple de code¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
Meilleures pratiques¶
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
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0096¶
SCOPE_IDENTITY() references a table that cannot be resolved in the symbol table.
Gravité¶
High
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
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.
Exemple de code¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
Meilleures pratiques¶
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
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0097¶
SCOPE_IDENTITY() references a table without an identifiable identity column.
Gravité¶
High
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
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.
Exemple de code¶
Input Code (SQL Server):¶
Generated Code (Snowflake):¶
Meilleures pratiques¶
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
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-EWI-TS0098¶
CONVERT with a non-literal style cannot be mapped to a Snowflake format string.
Gravité¶
Medium
Description¶
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.
Exemple de code¶
Input Code (SQL Server):¶
Generated Code (Snowflake SQL):¶
Meilleures pratiques¶
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.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.