Ist es möglich, eine Tabelle als Parameter an ein Skalierungs-UDF zu übergeben?
Ja, es ist möglich, Tabellen als Parameter an Scaler-UDFs zu übergeben. Allerdings werden nicht alle Tabellentypen unterstützt.
Einschränkungen für Tabellentypen
Laut Microsoft-Dokumentation alle Datentypen, einschließlich CLR-benutzerdefinierter Typen und benutzerdefiniert Tabellentypen, können mit Ausnahme des Zeitstempel-Datentyps als Parameter verwendet werden.
Benutzerdefinierte Tabelle Typen
Um eine Tabelle als Parameter zu übergeben, müssen Sie einen benutzerdefinierten Tabellentyp erstellen. Zum Beispiel:
CREATE TYPE TableType AS TABLE (LocationName VARCHAR(50))
Beispiel-UDF
Das folgende UDF verwendet einen benutzerdefinierten Tabellentyp als Parameter:
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
Hinweis dass der Parameter als READONLY angegeben werden muss.
Beispiel Verwendung
Um die UDF zu verwenden, deklarieren Sie eine Variable des benutzerdefinierten Tabellentyps und fügen Sie Daten darin ein:
DECLARE @myTable TableType INSERT INTO @myTable(LocationName) VALUES('aaa')
Sie können dann die UDF aufrufen:
SELECT dbo.Example(@myTable)
Daten aus einer Tabelle verwenden
Wenn Sie die gewünschten Daten in einer Tabelle haben Zur Übergabe an die UDF können Sie eine Variable zum Speichern der Daten verwenden:
DECLARE @myTable TableType INSERT INTO @myTable(field_name) SELECT field_name_2 FROM my_other_table
Sie können die Variable dann an die UDF übergeben:
SELECT dbo.Example(@myTable)
Das obige ist der detaillierte Inhalt vonKann 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!