Exécuter des fonctions définies par l’utilisateur

S’applique à :SQL ServerAzure SQL Database

Exécuter une fonction définie par l’utilisateur à l’aide de Transact-SQL

Limitations et restrictions

Dans Transact-SQL, les paramètres peuvent être fournis à l’aide de la valeur ou de la valeur @parameter_name=. Un paramètre ne fait pas partie d’une transaction ; par conséquent, si un paramètre est modifié dans une transaction qui est restaurée ultérieurement, la valeur du paramètre ne revient pas à sa valeur précédente. La valeur renvoyée à l'appelant est toujours la valeur au moment du renvoie du module.

Autorisations

Les autorisations ne sont pas requises pour exécuter l’instruction EXECUTE . Cependant, des autorisations sont requises sur les éléments sécurisables référencés dans la chaîne EXECUTE. Par exemple, si la chaîne contient une instruction INSERT , l’appelant de l’instruction EXECUTE doit posséder l’autorisation INSERT sur la table cible. Les autorisations sont vérifiées au moment où l'instruction EXECUTE est rencontrée, même si celle-ci est incluse dans un module. Pour plus d’informations, consultez EXECUTE (Transact-SQL)

Utiliser Transact-SQL

Cet exemple utilise la fonction scalaire ufnGetSalesOrderStatusText disponible dans la plupart des éditions de AdventureWorks. L’objectif de la fonction est de retourner une valeur de texte pour l’état des ventes à partir d’un entier donné. Modifiez l’exemple en passant des entiers 1 à 7 au @Status paramètre.

USE [AdventureWorks2022]
GO

-- Declare a variable to return the results of the function.
DECLARE @ret nvarchar(15);

-- Execute the function while passing a value to the @status parameter
EXEC @ret = dbo.ufnGetSalesOrderStatusText @Status = 5;

-- View the returned value.  The Execute and Select statements must be executed at the same time.
SELECT N'Order Status: ' + @ret;

-- Result:
-- Order Status: Shipped

Voir aussi