Maison >base de données >tutoriel mysql >Les UDF à valeur scalaire SQL Server peuvent-elles accepter les paramètres de table à une seule colonne ?

Les UDF à valeur scalaire SQL Server peuvent-elles accepter les paramètres de table à une seule colonne ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-05 13:21:40788parcourir

Can SQL Server Scalar-Valued UDFs Accept Single-Column Table Parameters?

Passer des paramètres de table aux UDF SQL Server

Problème :

Est-il possible de transmettre une table en tant que paramètre d'une fonction définie par l'utilisateur (UDF) à valeur de mise à l'échelle dans SQL Server, avec la restriction que le La table ne contient qu'une seule colonne ?

Réponse :

Oui, il est possible de transmettre des paramètres de table aux UDF, à condition que le type de données de la table ne soit pas le type de données d’horodatage. Pour y parvenir, des types de tables définis par l'utilisateur doivent être utilisés.

Exemple de type de table défini par l'utilisateur et d'utilisation de l'UDF :

CREATE TYPE TableType AS TABLE (LocationName VARCHAR(50))
GO

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
GO

DECLARE @myTable TableType
INSERT INTO @myTable(LocationName) VALUES('aaa')
SELECT * FROM @myTable

SELECT dbo.Example(@myTable)

Gestion des données à partir d'une table :

Pour transmettre une table de données d'une table existante vers une variable de type table définie par l'utilisateur, le code suivant peut être utilisé :

DECLARE @myTable TableType
INSERT INTO @myTable(field_name)
SELECT field_name_2 FROM my_other_table

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!

Déclaration:
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