Passer une table en paramètre à une UDF SQL Server
Il est possible de passer une table en paramètre à une UDF scalaire dans SQL Server, utilisant des types de tables définis par l'utilisateur.
Création d'une table définie par l'utilisateur Type
Définissez un type de table pour représenter la structure de votre paramètre de table. Par exemple :
CREATE TYPE TableType AS TABLE (LocationName VARCHAR(50))
Définition de l'UDF
Créez une UDF scalaire qui prend un paramètre du type de table défini par l'utilisateur. Le paramètre doit être déclaré comme READONLY. Par exemple :
CREATE FUNCTION Example(@TableName TableType READONLY) RETURNS VARCHAR(50) AS BEGIN DECLARE @name VARCHAR(50) SELECT TOP 1 @name = LocationName FROM @TableName RETURN @name END
Passer une variable de table
Dans SQL Server, vous pouvez créer une variable du type de table définie par l'utilisateur et la remplir avec les données de un tableau. Par exemple :
DECLARE @myTable TableType INSERT INTO @myTable(LocationName) VALUES('aaa')
Utilisation
Pour utiliser l'UDF avec une variable de table, transmettez la variable en paramètre. Par exemple :
SELECT dbo.Example(@myTable)
Gestion des doublons et des NULL
Pour vous assurer qu'il n'y a pas de doublons ni de NULL dans votre table, vous pouvez inclure des vérifications pertinentes dans votre UDF :
CREATE FUNCTION Example(@TableName TableType READONLY) RETURNS VARCHAR(50) AS BEGIN DECLARE @name VARCHAR(50) SELECT TOP 1 @name = LocationName FROM @TableName WHERE LocationName IS NOT NULL AND LocationName NOT IN (SELECT LocationName FROM @TableName WHERE LocationName IS NULL OR LocationName = @name) RETURN @name END
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!