Maison > base de données > tutoriel mysql > Comment puis-je transmettre une table en tant que paramètre à une UDF SQL Server ?

Comment puis-je transmettre une table en tant que paramètre à une UDF SQL Server ?

Linda Hamilton
Libérer: 2025-01-05 20:07:42
original
212 Les gens l'ont consulté

How Can I Pass a Table as a Parameter to a SQL Server UDF?

Passer des tables en tant que paramètres aux UDF SQL Server

Il est possible de passer une table en tant que paramètre dans une UDF scalaire SQL Server. Cependant, certaines restrictions s'appliquent, comme indiqué dans la documentation : tous les types de données sont autorisés sauf l'horodatage. Pour surmonter cette limitation, vous pouvez créer des types de tables définis par l'utilisateur (UDTT).

Voici un exemple d'UDTT nommé TableType :

CREATE TYPE TableType
AS TABLE (
  LocationName VARCHAR(50)
);
Copier après la connexion

Avec un UDTT défini, vous pouvez créer un fonction qui accepte un paramètre de ce type :

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;
Copier après la connexion

Notez que le paramètre est défini comme READONLY. Pour utiliser cette fonction, vous pouvez créer une variable de l'UDTT et y insérer des données :

DECLARE @myTable TableType;
INSERT INTO @myTable(LocationName) VALUES('aaa');
SELECT * FROM @myTable;
Copier après la connexion

Vous pouvez maintenant appeler la fonction Exemple et passer la variable en paramètre :

SELECT dbo.Example(@myTable);
Copier après la connexion

Pour votre besoin spécifique de renvoyer une liste CSV de valeurs à partir d'une table, vous pouvez modifier la fonction en conséquence. De plus, vous pouvez effectuer un filtrage au sein de la fonction, par exemple en vérifiant les valeurs nulles et les doublons.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal