Maison >base de données >tutoriel mysql >Puis-je transmettre une table en tant que paramètre à une UDF scalaire SQL Server ?
Est-il possible de passer une table en tant que paramètre dans une UDF de scaler ?
Oui, il est possible de transmettre des tables en tant que paramètres dans les UDF du scaler. Cependant, tous les types de tables ne sont pas pris en charge.
Restrictions sur les types de tables
Selon la documentation de Microsoft, tous les types de données, y compris les types définis par l'utilisateur CLR et les types définis par l'utilisateur. types de table, peuvent être utilisés comme paramètres à l'exception du type de données d'horodatage.
Table définie par l'utilisateur Types
Pour passer une table en paramètre, vous devez créer un type de table défini par l'utilisateur. Par exemple :
CREATE TYPE TableType AS TABLE (LocationName VARCHAR(50))
Exemple UDF
L'UDF suivante prend un type de table défini par l'utilisateur comme paramètre :
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
Remarque que le paramètre doit être spécifié comme READONLY.
Exemple Utilisation
Pour utiliser l'UDF, déclarez une variable de type table définie par l'utilisateur et insérez-y des données :
DECLARE @myTable TableType INSERT INTO @myTable(LocationName) VALUES('aaa')
Vous pouvez ensuite appeler l'UDF :
SELECT dbo.Example(@myTable)
Utiliser les données d'une table
Si vous avez des données dans une table que vous souhaitez passer à l'UDF, vous pouvez utiliser une variable pour stocker les données :
DECLARE @myTable TableType INSERT INTO @myTable(field_name) SELECT field_name_2 FROM my_other_table
Vous pouvez ensuite passer la variable à l'UDF :
SELECT dbo.Example(@myTable)
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!