Rumah > pangkalan data > tutorial mysql > Bolehkah saya Lulus Jadual sebagai Parameter kepada UDF Pelayan SQL?

Bolehkah saya Lulus Jadual sebagai Parameter kepada UDF Pelayan SQL?

DDD
Lepaskan: 2025-01-06 03:34:40
asal
621 orang telah melayarinya

Can I Pass Tables as Parameters to SQL Server UDFs?

Melalui Jadual sebagai Parameter kepada UDF SQL Server

Dalam SQL Server, adalah mungkin untuk menghantar jadual sebagai parameter kepada fungsi skalar yang ditentukan pengguna (UDF). Walau bagaimanapun, ciri ini tidak terhad kepada semua jenis jadual.

Jenis Jadual yang Dibenarkan

Menurut dokumentasi Microsoft, semua jenis data dibenarkan untuk parameter UDF, kecuali untuk jenis data cap masa. Akibatnya, jenis jadual yang ditentukan pengguna boleh digunakan sebagai parameter.

Mencipta Jenis Jadual Yang Ditakrifkan Pengguna

Untuk menggambarkan, pertimbangkan jenis jadual berikut:

CREATE TYPE TableType AS TABLE (LocationName VARCHAR(50))
GO
Salin selepas log masuk

UDF Contoh

Sekarang, mari kita tentukan UDF yang menerima parameter jenis 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
Salin selepas log masuk

Penggunaan

Contoh penggunaan:

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

SELECT dbo.Example(@myTable)
Salin selepas log masuk

Sekatan Pilihan untuk Jadual Satu Lajur

Jika anda ingin mengehadkan parameter kepada jadual dengan satu lajur, anda boleh mengubah suai definisi UDF untuk memasukkan semakan berikut:

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
Salin selepas log masuk

Mengisi Pembolehubah daripada Jadual Sedia Ada

Untuk menghantar data daripada jadual sedia ada kepada parameter UDF, anda boleh menggunakan pembolehubah:

DECLARE @myTable TableType

INSERT INTO @myTable(field_name)
SELECT field_name_2 FROM my_other_table
Salin selepas log masuk

Atas ialah kandungan terperinci Bolehkah saya Lulus Jadual sebagai Parameter kepada UDF Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan