Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine Tabelle als Parameter an eine skalare SQL Server-UDF übergeben?
Übergabe einer Tabelle als Parameter an eine SQL Server-UDF
Es ist möglich, eine Tabelle als Parameter an eine skalare UDF zu übergeben SQL Server unter Verwendung benutzerdefinierter Tabellentypen.
Erstellen einer benutzerdefinierten Tabelle Typ
Definieren Sie einen Tabellentyp, der die Struktur Ihres Tabellenparameters darstellt. Zum Beispiel:
CREATE TYPE TableType AS TABLE (LocationName VARCHAR(50))
Definieren der UDF
Erstellen Sie eine skalare UDF, die einen Parameter des benutzerdefinierten Tabellentyps annimmt. Der Parameter muss als READONLY deklariert werden. Zum Beispiel:
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
Übergabe einer Tabellenvariablen
In SQL Server können Sie eine Variable des benutzerdefinierten Tabellentyps erstellen und sie mit Daten aus füllen ein Tisch. Zum Beispiel:
DECLARE @myTable TableType INSERT INTO @myTable(LocationName) VALUES('aaa')
Verwendung
Um die UDF mit einer Tabellenvariablen zu verwenden, übergeben Sie die Variable als Parameter. Zum Beispiel:
SELECT dbo.Example(@myTable)
Umgang mit Duplikaten und NULL-Werten
Um sicherzustellen, dass Ihre Tabelle keine Duplikate und NULL-Werte enthält, können Sie relevante Prüfungen in Ihre UDF aufnehmen:
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
Das obige ist der detaillierte Inhalt vonWie kann ich eine Tabelle als Parameter an eine skalare SQL Server-UDF übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!