Heim > Datenbank > MySQL-Tutorial > Kann ich Tabellen als Parameter an SQL Server-UDFs übergeben?

Kann ich Tabellen als Parameter an SQL Server-UDFs übergeben?

DDD
Freigeben: 2025-01-06 03:34:40
Original
594 Leute haben es durchsucht

Can I Pass Tables as Parameters to SQL Server UDFs?

Übergabe von Tabellen als Parameter an SQL Server-UDFs

In SQL Server ist es möglich, Tabellen als Parameter an skalare benutzerdefinierte Funktionen zu übergeben (UDFs). Diese Funktion ist jedoch nicht auf alle Tabellentypen beschränkt.

Zulässige Tabellentypen

Laut Microsoft-Dokumentation sind alle Datentypen für UDF-Parameter zulässig, mit Ausnahme von Zeitstempel-Datentyp. Folglich können benutzerdefinierte Tabellentypen als Parameter verwendet werden.

Benutzerdefinierte Tabellentypen erstellen

Betrachten Sie zur Veranschaulichung den folgenden Tabellentyp:

CREATE TYPE TableType AS TABLE (LocationName VARCHAR(50))
GO
Nach dem Login kopieren

UDF-Beispiel

Nun definieren wir ein UDF, das akzeptiert einen Parameter vom Typ TableType:

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
Nach dem Login kopieren

Verwendung

Ein Beispiel für die Verwendung:

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

SELECT dbo.Example(@myTable)
Nach dem Login kopieren

Optionale Einschränkung auf Einspaltige Tabellen

Wenn Sie den Parameter auf Tabellen mit einer einzelnen Spalte beschränken möchten In der Spalte können Sie die UDF-Definition so ändern, dass sie die folgende Prüfung enthält:

CREATE FUNCTION Example( @TableName TableType READONLY)
RETURNS VARCHAR(50)
AS
BEGIN
    IF (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName AND TABLE_SCHEMA = 'dbo') > 1
        RETURN ERROR(1, 1, 'Invalid parameter: table must have a single column.');

    DECLARE @name VARCHAR(50)

    SELECT TOP 1 @name = LocationName FROM @TableName
    RETURN @name
END
Nach dem Login kopieren

Variablen aus vorhandenen Tabellen füllen

Um Daten aus einer vorhandenen Tabelle an die UDF zu übergeben Parameter können Sie eine Variable verwenden:

DECLARE @myTable TableType

INSERT INTO @myTable(field_name)
SELECT field_name_2 FROM my_other_table
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonKann ich Tabellen als Parameter an SQL Server-UDFs übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage