Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Melepasi Jadual sebagai Parameter kepada UDF Pelayan SQL?

Bagaimanakah Saya Boleh Melepasi Jadual sebagai Parameter kepada UDF Pelayan SQL?

Linda Hamilton
Lepaskan: 2025-01-05 20:07:42
asal
225 orang telah melayarinya

How Can I Pass a Table as a Parameter to a SQL Server UDF?

Meluluskan Jadual sebagai Parameter kepada UDF Pelayan SQL

Ia adalah mungkin untuk menghantar jadual sebagai parameter ke dalam UDF skalar SQL Server. Walau bagaimanapun, sekatan tertentu dikenakan, seperti yang dinyatakan dalam dokumentasi: semua jenis data dibenarkan kecuali cap waktu. Untuk mengatasi had ini, anda boleh mencipta jenis jadual takrif pengguna (UDTT).

Berikut ialah contoh UDTT bernama TableType:

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

Dengan ditentukan UDTT, anda boleh mencipta fungsi yang menerima parameter jenis itu:

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

Perhatikan bahawa parameter ditakrifkan sebagai BACA SAHAJA. Untuk menggunakan fungsi ini, anda boleh mencipta pembolehubah UDTT dan memasukkan data ke dalamnya:

DECLARE @myTable TableType;
INSERT INTO @myTable(LocationName) VALUES('aaa');
SELECT * FROM @myTable;
Salin selepas log masuk

Kini anda boleh memanggil fungsi Contoh dan lulus pembolehubah sebagai parameter:

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

Untuk keperluan khusus anda untuk mengembalikan senarai nilai CSV daripada jadual, anda boleh mengubah suai fungsi tersebut dengan sewajarnya. Selain itu, anda boleh melakukan penapisan dalam fungsi, seperti menyemak nol dan pendua.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melepasi 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan