SnowConvert AI - Références des fonctions pour SQL-Server¶
ISNUMERIC_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) détermine si une expression est un type numérique valide.
Paramètres¶
EXPR VARCHAR
L’expression à évaluer.
Renvoie¶
Renvoie 1 lorsque l’expression d’entrée est évaluée à un type de données numériques valide ; sinon, elle renvoie 0.
Exemple d’utilisation¶
Entrée :
Sortie :
PATINDEX_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) renvoie la position de départ de la première occurrence d’un modèle dans une expression spécifiée ou des zéros si le modèle n’est pas trouvé.
Paramètres¶
PATTERN VARCHAR
Le modèle à rechercher.
EXPRESSION VARCHAR
L’expression en cours d’évaluation.
Renvoie¶
Renvoie un entier avec la position de départ du modèle.
Exemple d’utilisation¶
Entrée :
Sortie :
ERROR_SEVERITY_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) obtient une valeur indiquant la gravité d’une erreur. La valeur par défaut est toujours 16.
Paramètres¶
Aucun paramètre d’entrée.
Renvoie¶
Renvoie une chaîne avec la valeur associée à ERROR_SEVERITY du nom de la variable SQL.
Exemple d’utilisation¶
Entrée :
Sortie :
TRANSFORM_SP_EXECUTE_SQL_STRING_UDF(STRING, STRING, ARRAY, ARRAY)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) émule le comportement des paramètres intégrés (données de liaison) dans la procédure du système SP_EXECUTESQL en remplaçant directement leurs valeurs dans la chaîne SQL.
En outre, elle supprime les paramètres OUTPUT de la chaîne, car cette opération est effectuée en dehors de EXECUTE IMMEDIATE vers lequel SP_EXECUTESQL sera transformé.
Pour plus d’informations, consultez la spécification de traduction SP_EXECUTESQL.
Paramètres¶
_SQL_STRING STRING
La chaîne à transformer.
_PARAMS_DEFINITION STRING
La définition originale des paramètres vérifie l’ordre dans lequel les valeurs des paramètres doivent être attribuées.
_PARAMS_NAMES ARRAY
Le tableau des noms de paramètres qui remplacent les valeurs de la chaîne SQL.
_PARAMS_VALUES ARRAY
Le tableau des valeurs des paramètres à remplacer dans la chaîne SQL.
Renvoie¶
Renvoie une STRING dont les valeurs des paramètres intégrés ont été remplacées.
Exemple d’utilisation¶
Entrée :
Sortie :
TABLE_OBJECT_ID_UDF (VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) vérifie si une table portant un nom spécifique a déjà été créée.
Paramètres¶
NAME VARCHAR
Le nom de la table à évaluer.
Renvoie¶
Renvoie une expression booléenne dépendant de l’existence de la table.
Exemple d’utilisation¶
Entrée :
Sortie :
ERROR_PROCEDURE_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) renvoie la valeur associée à ERROR_PROCEDURE du nom de la variable SQL.
Paramètres¶
Aucun paramètre d’entrée.
Renvoie¶
Renvoie une chaîne avec la valeur associée à ERROR_PROCEDURE du nom de la variable SQL.
Exemple d’utilisation¶
Entrée :
Sortie :
DB_ID_UDF(STRING)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) émule la fonctionnalité DB_ID.
Paramètres¶
p_database_name STRING
Le nom de la base de données pour obtenir l’identifiant.
Renvoie¶
Returns an id which corresponds to the number assigned to the database when it is created. This number is assigned consecutively.
Exemple d’utilisation¶
Entrée :
Sortie :
Avertissement
Si la base de données n’existe pas, elle renvoie null.
ERROR_LINE_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) renvoie la valeur associée à ERROR_LINE du nom de la variable SQL.
Paramètres¶
Aucun paramètre d’entrée.
Renvoie¶
Renvoie une chaîne avec la valeur associée à ERROR_LINE du nom de la variable SQL.
Exemple d’utilisation¶
Entrée :
Sortie :
FUNCTION_OBJECT_ID_UDF (VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) vérifie si une fonction portant un nom spécifique a déjà été créée.
Paramètres¶
NAME VARCHAR
Le nom de la fonction à évaluer.
Renvoie¶
Renvoie une expression booléenne dépendant de l’existence de la fonction.
Exemple d’utilisation¶
Entrée :
Sortie :
CONSTRAINT_OBJECT_ID_UDF (VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) vérifie si une contrainte portant un nom spécifique a déjà été créée.
Paramètres¶
NAME VARCHAR
Le nom de la contrainte à évaluer.
Renvoie¶
Renvoie une expression booléenne dépendant de l’existence de la contrainte.
Exemple d’utilisation¶
Entrée :
Sortie :
FOR_XML_UDF (OBJECT, VARCHAR, VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) convertit un objet en XML.
Paramètres¶
OBJ OBJECT
Objet à convertir.
ELEMENT_NAME VARCHAR
Nom de l’élément à donner à l’objet.
ROOT_NAME VARCHAR
Le nom racine de XML.
Renvoie¶
Renvoie un varchar au format XML.
Exemple d’utilisation¶
Entrée :
Sortie :
OBJECT_ID_UDF (VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) vérifie si un objet portant un nom spécifique a déjà été créé.
Paramètres¶
NAME VARCHAR
Le nom de l’objet à évaluer.
Renvoie¶
Renvoie une expression booléenne dépendant de l’existence de l’objet.
Exemple d’utilisation¶
Entrée :
Sortie :
PROCEDURE_OBJECT_ID_UDF (VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) vérifie si une procédure portant un nom spécifique a déjà été créée.
Paramètres¶
NAME VARCHAR
Le nom de la procédure à évaluer.
Renvoie¶
Renvoie une expression booléenne dépendant de l’existence de la procédure.
Exemple d’utilisation¶
Entrée :
Sortie :
ISDATE_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) détermine si la valeur d’entrée est une date valide.
Paramètres¶
DATE_VALUE STRING
La date qui va être évaluée.
Renvoie¶
Renvoie 1 lorsque l’expression d’entrée est évaluée à un type de données de date valide ; sinon, elle renvoie 0.
Exemple d’utilisation¶
Entrée :
Sortie :
ERROR_NUMBER_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) renvoie la valeur associée à ERROR_NUMBER du nom de la variable SQL.
Paramètres¶
Aucun paramètre d’entrée.
Renvoie¶
Renvoie une chaîne avec la valeur associée à ERROR_NUMBER du nom de la variable SQL.
Exemple d’utilisation¶
Entrée :
Sortie :
OFFSET_FORMATTER (VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) est une fonction auxiliaire de pour le formatage de l’heure de décalage et de son opérateur préfixe.
Paramètres¶
offset_hrs VARCHAR
La valeur à formater.
Renvoie¶
Renvoie une valeur de type varchar contenant la sortie formatée pour le décalage.
Exemple d’utilisation¶
Entrée :
Sortie :
OPENXML_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) génère une requête à partir d’une lecture XML.
Paramètres¶
XML VARCHAR
Le contenu XML sous forme de varchar.
PATH VARCHAR
Le chemin du nœud à extraire.
Renvoie¶
Renvoie une table contenant les données générées par la lecture XML.
Exemple d’utilisation¶
Entrée :
Sortie :
| Value | |
|---|---|
| 1 | { "order": { "$name": "order", "customer": [ { "customer": { "$name": "customer", "@contactName": "Test ABC", "@customerID": "CUST001", "iceCreamOrder": [ { "iceCreamOrder": { "$name": "iceCreamOrder", "@employeeID": 101, "@orderDate": "2023-05-15T14:30:00", "@orderID": "ORD001", "iceCreamDetail": [ { "iceCreamDetail": { "$name": "iceCreamDetail", "@productID": "001", "@quantity": 2 } }, { "iceCreamDetail": { "$name": "iceCreamDetail", "@productID": "003", "@quantity": 1 } } ] } } ] } } ] } } |
| 2 | { "order": { "$name": "order", "customer": [ { "customer": { "$name": "customer", "@contactName": "Test XYZ", "@customerID": "CUST002", "iceCreamOrder": [ { "iceCreamOrder": { "$name": "iceCreamOrder", "@employeeID": 102, "@orderDate": "2023-06-20T12:45:00", "@orderID": "ORD002", "iceCreamDetail": [ { "iceCreamDetail": { "$name": "iceCreamDetail", "@productID": "005", "@quantity": 3 } }, { "iceCreamDetail": { "$name": "iceCreamDetail", "@productID": "007", "@quantity": 2 } } ] } } ] } } ] } } |
QUOTENAME_UDF (VARCHAR, VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) crée un identificateur délimité valide pour le serveur SQL en renvoyant une chaîne Unicode à laquelle les délimiteurs ont été ajoutés.
Paramètres¶
STR VARCHAR
La chaîne à transformer.
QUOTECHAR VARCHAR
Le délimiteur à ajouter au premier paramètre.
Renvoie¶
Renvoie un varchar auquel l’identificateur du deuxième paramètre a été ajouté comme délimiteur.
Exemple d’utilisation¶
Entrée :
Sortie :
UPDATE_ERROR_VARS_UDF (STRING, STRING, STRING)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) met à jour les variables d’erreur dans un environnement afin de savoir quand la procédure génère une erreur.
Paramètres¶
STATE STRING
L’état du message d’erreur.
MESSAGE STRING
Le message à afficher dans l’erreur.
SEVERITY STRING
La gravité de l’erreur.
Renvoie¶
Renvoie une valeur chaîne contenant les nouvelles informations sur le message d’erreur.
Exemple d’utilisation¶
Entrée :
Sortie :
ROUND_MILLISECONDS_UDF (TIMESTAMP_TZ)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) est une fonction qui arrondit les millisecondes à des incréments de 0, 3 ou 7 millisecondes. Transact arrondit automatiquement les millisecondes des valeurs temporelles.
Paramètres¶
INPUT TIMESTAMP_TZ
Le temps d’entrée à arrondir.
Renvoie¶
Renvoie la même valeur d’entrée TIMESTAMP_TZ mais avec les millisecondes arrondies.
Exemple d’utilisation¶
Entrée :
Sortie :
CAST_NUMERIC_TO_TIMESTAMP_TZ_UDF (NUMBER)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) est utilisée pour convertir une valeur numérique en timestamp_tz.
Paramètres¶
INPUT NUMBER
Le nombre à transmettre.
Renvoie¶
Retourne un timestamp_tz avec le fuseau horaire actuel.
Exemple d’utilisation¶
Entrée :
Sortie :
IDENTITY_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) détermine si une expression est un type numérique valide.
Paramètres¶
Aucun paramètre d’entrée.
Renvoie¶
Renvoie une expression entière.
Exemple d’utilisation¶
Avertissement
Une séquence est générée pour prendre en charge la logique.
Entrée :
Sortie :
FOR_XML_UDF (OBJECT, VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) convertit un objet en XML.
Paramètres¶
OBJ OBJECT
Objet à convertir.
ELEMENT_NAME VARCHAR
Nom de l’élément à donner à l’objet.
Renvoie¶
Renvoie un varchar au format XML.
Exemple d’utilisation¶
Entrée :
Sortie :
QUOTENAME_UDF (VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) crée un identificateur délimité valide pour le serveur SQL en renvoyant une chaîne Unicode à laquelle les délimiteurs ont été ajoutés.
Paramètres¶
STR VARCHAR
La chaîne à transformer.
Renvoie¶
Renvoie un varchar auquel a été ajouté l’identificateur délimiteur.
Exemple d’utilisation¶
Entrée :
Sortie :
VIEW_OBJECT_ID_UDF (VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) vérifie si une vue portant un nom spécifique a déjà été créée.
Paramètres¶
NAME VARCHAR
Le nom de la vue à évaluer.
Renvoie¶
Renvoie une expression booléenne dépendant de l’existence de la vue.
Exemple d’utilisation¶
Entrée :
Sortie :
SUBTRACT_TIMESTAMP_TZ_UDF (TIMESTAMP_TZ, TIMESTAMP_TZ)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) convertit les deux entrées dans le fuseau horaire de la session du système et soustrait les dates (FIRST_DATE - SECOND_DATE) en prenant 1900-01-01 00:00:00.000 comme valeur zéro. Si aucune valeur n’inclut le fuseau horaire, le fuseau horaire de la session en cours est utilisé.
Paramètres¶
FIRST_DATE TIMESTAMP_TZ
La première date à laquelle il faut soustraire.
SECOND_DATE TIMESTAMP_TZ
La deuxième date à laquelle il faut soustraire.
Renvoie¶
Renvoie la différence entre les deux dates d’entrée.
Exemple d’utilisation¶
Entrée :
Sortie :
STR_UDF (FLOAT, VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) est un modèle pour traduire la fonctionnalité de SQL Server STR() vers Snowflake lorsqu’elle est utilisée avec un ou deux paramètres optionnels
Paramètres¶
FLOAT_EXPR FLOAT
L’expression à traiter.
FORMAT VARCHAR
Le format à appliquer.
Renvoie¶
Renvoie un varchar contenant l’expression formatée.
Exemple d’utilisation¶
Entrée :
Sortie :
XML_JSON_SIMPLE¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) génère un objet contenant les informations issues de l’exécution d’une lecture d’une valeur XML.
Paramètres¶
XML VARIANT
Le XML à lire.
Renvoie¶
Renvoie un objet contenant les informations traitées à partir de XML.
Exemple d’utilisation¶
Entrée :
Sortie :
FORMATMESSAGE_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) fournit les fonctionnalités de la fonction FORMATMESSAGE de SQL Server. Il construit un message à partir d’un message existant issu d’une chaîne fournie.
Paramètres¶
MESSAGE STRING
La chaîne du message existant.
ARGS ARRAY
Les arguments à ajouter à la première chaîne de messages.
Renvoie¶
Renvoie une chaîne contenant le message concaténé correspondant aux positions de l’argument.
Exemple d’utilisation¶
Entrée :
Sortie :
IS_MEMBER_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) détermine l’appartenance à un groupe de fenêtres en examinant un jeton d’accès.
Paramètres¶
ROLE STRING
Le nom du rôle à vérifier.
Renvoie¶
Renvoie une expression booléenne sur true si l’utilisateur actuel est membre du rôle ; sinon renvoie false.
Exemple d’utilisation¶
Entrée :
Sortie :
RAISERROR_UDF (DOUBLE, DOUBLE, DOUBLE, ARRAY)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) lance une exception avec un message spécifique.
Paramètres¶
MSG_ID DOUBLE
Le ID du message du message d’erreur.
SEVERITY DOUBLE
Le numéro de gravité de l’erreur.
STATE DOUBLE
Le numéro d’état du message d’erreur.
PARAMS ARRAY
Les informations complémentaires du message d’erreur.
Renvoie¶
Renvoie un message d’erreur sous la forme d’une variable.
Exemple d’utilisation¶
Entrée :
Sortie :
STR_UDF(FLOAT)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) est un modèle pour traduire la fonctionnalité de SQL Server STR() vers Snowflake lorsqu’elle est utilisée avec un ou deux paramètres optionnels
Paramètres¶
FLOAT_EXPR FLOAT
L’expression à traiter.
Renvoie¶
Renvoie un varchar contenant l’expression formatée.
Exemple d’utilisation¶
Entrée :
Sortie :
SWITCHOFFSET_UDF (TIMESTAMP_TZ, VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) renvoie un nouvel horodatage_tz avec le temps ajusté pour le paramètre target_tz.
Paramètres¶
source_timestamp TIMESTAMP_TZ
L’horodatage source à ajuster.
target_tz varchar
Le temps cible à prendre.
Renvoie¶
Renvoie l’heure cible formatée sous la forme TIMESTAMP_TZ.
Exemple d’utilisation¶
Entrée :
Sortie :
time_in_paris |
time_in_costa_rica |
|---|---|
2022-10-05 22:00:24.467 +02:00 |
2022-10-05 14:00:24.467 -06:00 |
GET_CURRENT_TIMEZONE_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) permet d’obtenir le fuseau horaire de la session ou du système actuel sous la forme d’un littéral.
Paramètres¶
Aucun paramètre.
Renvoie¶
Renvoie une valeur littérale avec le fuseau horaire de la session ou du système en cours sous forme littérale.
Exemple d’utilisation¶
Entrée :
Sortie :
UPDATE_ERROR_VARS_UDF (STRING, STRING, STRING, STRING, STRING, STRING)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) met à jour les variables d’erreur dans un environnement afin de savoir quand la procédure génère une erreur.
Paramètres¶
LINE STRING
La ligne relative à l’erreur.
CODE STRING
Le code d’erreur associé au message d’erreur.
STATE STRING
L’état du message d’erreur.
MESSAGE STRING
Le message à afficher dans l’erreur.
PROC_NAME STRING
Le nom de la procédure.
SEVERITY STRING
La gravité de l’erreur.
Renvoie¶
Renvoie une valeur chaîne contenant les nouvelles informations sur le message d’erreur.
Exemple d’utilisation¶
Entrée :
Sortie :
SEQUENCE_OBJECT_ID_UDF (VARCHAR)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) vérifie si une séquence portant un nom spécifique a déjà été créée.
Paramètres¶
NAME VARCHAR
Le nom de la séquence à évaluer.
Renvoie¶
Renvoie une expression booléenne dépendant de l’existence de la séquence.
Exemple d’utilisation¶
Entrée :
Sortie :
CAST_TIMESTAMP_TZ_TO_NUMERIC_UDF (TIMESTAMP_TZ)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) est utilisée pour convertir timestamp_tz en numérique. Il convertit le fuseau horaire actuel en UTC car la valeur numérique ne peut pas sauvegarder l’information de l”horodatage.
Paramètres¶
INPUT TIMESTAMP_TZ
L”horodatage de l’entrée qui va être transmis.
Renvoie¶
Renvoie un numérique avec un point décimal. La partie entière représente le nombre de jours à partir de 1900-01-01 et la partie décimale est le pourcentage de millisecondes dans 24 heures.
Exemple d’utilisation¶
Entrée :
Sortie :
RAISERROR_UDF (VARCHAR, DOUBLE, DOUBLE, ARRAY)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) lance une exception avec un message spécifique.
Paramètres¶
MSG_TEXT VARCHAR
Le texte du message d’erreur.
SEVERITY DOUBLE
Le numéro de gravité de l’erreur.
STATE DOUBLE
Le numéro d’état du message d’erreur.
PARAMS ARRAY
Les informations complémentaires du message d’erreur.
Renvoie¶
Renvoie un message d’erreur sous la forme d’une variable.
Exemple d’utilisation¶
Entrée :
Sortie :
PARSENAME_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) obtient l’index PART_NUMBER d’une chaîne séparée par '.'.
Paramètres¶
STR VARCHAR
Le nom de l’objet sous forme de chaîne.
PART_NUMBER INT
La partie du nom de l’objet à vérifier.
Renvoie¶
Renvoie la partie spécifiée d’un nom d’objet.
Exemple d’utilisation¶
Entrée :
Sortie :
ERROR_STATE_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) obtient l’état d’erreur quel que soit le nombre de fois où elle est exécutée ou l’endroit où elle est exécutée dans le champ d’application du bloc CATCH.
Paramètres¶
Aucun paramètre d’entrée.
Renvoie¶
Renvoie la chaîne avec l’état d’erreur, quel que soit le nombre de fois où elle est exécutée ou l’endroit où elle est exécutée dans le champ d’application du bloc CATCH.
Exemple d’utilisation¶
Entrée :
Sortie :
CAST_TIME_TO_TIMESTAMP_TZ_UDF (TIME)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) transforme time en timestamp_tz.
Paramètres¶
INPUT TIME
L’heure d’entrée à convertir en timestamp_tz.
Renvoie¶
Renvoie un timestamp_tz avec la date 1900-01-01 et la même heure que l’entrée.
Exemple d’utilisation¶
Entrée :
Sortie :
SUM_TIMESTAMP_TZ_UDF (TIMESTAMP_TZ, TIMESTAMP_TZ)¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) convertit les deux entrées dans le fuseau horaire du système ou de la session et additionne les dates en prenant 1900-01-01 00:00:00.000 comme valeur zéro. Si aucune valeur n’inclut le fuseau horaire, le fuseau horaire de la session en cours est utilisé.
Paramètres¶
FIRST_DATE TIMESTAMP_TZ
La première date à ajouter.
SECOND_DATE TIMESTAMP_TZ
La deuxième date à ajouter.
Renvoie¶
Renvoie la somme entre les deux dates d’entrée.
Exemple d’utilisation¶
Entrée :
Sortie :
GET_WEEK_START_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) récupère la configuration WEEK_START, qui est équivalente à la fonction @@FIRSTDATE. Pour maintenir une cohérence entre les plateformes, assurez-vous que le paramètre WEEK_START correspond à la définition DATEFIRST dans Transact-SQL.
Renvoie¶
Renvoie un nombre représentant le premier jour de la semaine.
Exemple d’utilisation¶
La valeur par défaut de Snowflake pour WEEK_START est 0. Cependant, cette fonction renvoie 7 pour s’aligner sur la valeur DATEFIRST par défaut dans Transact-SQL, ce qui garantit un comportement cohérent.
Entrée :
Sortie :
DATE_PART_WEEK_DAY_UDF¶
Définition¶
Cette fonction définie par l’utilisateur (UDF) obtient le jour de la semaine sous la forme d’un nombre (1-7). Pour assurer une cohérence entre les plateformes, veuillez définir le paramètre WEEK_START sur la même valeur que la définition DATEFIRST dans Transact-SQL.
Paramètres¶
INPUT DATE
Date pour obtenir le jour.
Renvoie¶
Renvoie un nombre représentant le jour de la semaine où lundi = 1, mardi = 2, …, dimanche = 7.
Exemple d’utilisation¶
Le paramètre WEEK_START est 0. Par conséquent, l’DATE_PART_WEEK_DAY_UDF renvoie une valeur de 1.
Entrée :
Sortie :
SCOPE_IDENTITY()¶
Définition¶
The SCOPE_IDENTITY() function in SQL Server returns the last identity value inserted into an identity column in the same scope. SnowConvert AI transforms this function into a time-travel query using AT(STATEMENT =>) to retrieve the identity value from the most recent INSERT statement.
Transformation Pattern¶
SQL Server:
Snowflake:
Requirements¶
Only works within procedural contexts (stored procedures, functions) that are transformed to SnowScript
Requires an identity column defined on the target table using
IDENTITY(seed, increment)The preceding INSERT statement must target a table with a resolvable identity column in the symbol table
Usage Example¶
Input (SQL Server):¶
Output (Snowflake):¶
Known Limitations¶
Nested Scope Edge Case¶
When SCOPE_IDENTITY() is used inside a nested BEGIN...END block while the INSERT statement is in the outer procedure body, the transformation may not detect the INSERT correctly:
In this case, SnowConvert AI may generate SSC-EWI-TS0095 indicating that no preceding INSERT was found, even though one exists at a different nesting level. This is a known limitation tracked for future enhancement.
Workaround: Refactor the code to keep SCOPE_IDENTITY() in the same block as the INSERT statement.
Batch Context¶
SCOPE_IDENTITY() is not transformed in batch contexts (scripts outside of procedures/functions). In such cases, the original function call is preserved with SSC-EWI-0073.
Additional Notes¶
The
AT(STATEMENT =>)time-travel clause may return incorrect results under high-concurrency scenarios where multiple sessions insert into the same table simultaneouslyFor more information about time-travel queries, see the Snowflake documentation