Rumah >pembangunan bahagian belakang >C++ >Bagaimana saya boleh lulus array ke dalam prosedur tersimpan SQL Server?
SQL Server 2016 (atau versi yang lebih tinggi)
string_split () atau openjson () fungsi.
<code class="language-sql">-- STRING_SPLIT() 示例 CREATE PROCEDURE dbo.DoSomethingWithEmployees @List varchar(max) AS BEGIN SET NOCOUNT ON; SELECT value FROM STRING_SPLIT(@List, ','); END</code>
<code class="language-sql">-- OPENJSON() 示例 CREATE PROCEDURE dbo.DoSomethingWithEmployees @List varchar(max) AS BEGIN SET NOCOUNT ON; SELECT value FROM OPENJSON(CONCAT('["', REPLACE(STRING_ESCAPE(@List, 'JSON'), ',', '","'), '"]')) AS j; END</code>SQL Server 2008 (atau versi yang lebih tinggi)
<code class="language-sql">-- 创建 UDT CREATE TYPE dbo.IDList AS TABLE ( ID INT ); -- 创建存储过程 CREATE PROCEDURE dbo.DoSomethingWithEmployees @List AS dbo.IDList READONLY AS BEGIN SET NOCOUNT ON; SELECT ID FROM @List; END</code>SQL Server 2005
<code class="language-sql">-- 创建函数 CREATE FUNCTION dbo.SplitInts ( @List VARCHAR(MAX), @Delimiter VARCHAR(255) ) RETURNS TABLE AS RETURN ( SELECT Item = CONVERT(INT, Item) FROM ( SELECT Item = x.i.value('(./text())[1]', 'varchar(max)') FROM ( SELECT [XML] = CONVERT(XML, '<i>' + REPLACE(@List, @Delimiter, '</i><i>') + '</i>').query('.') ) AS a CROSS APPLY [XML].nodes('i') AS x(i) ) AS y WHERE Item IS NOT NULL );</code>
<code class="language-sql">-- 创建存储过程 CREATE PROCEDURE dbo.DoSomethingWithEmployees @List VARCHAR(MAX) AS BEGIN SET NOCOUNT ON; SELECT EmployeeID = Item FROM dbo.SplitInts(@List, ','); END</code>Ringkasan:
Kaedah menggunakan parameter nilai jadual (TVP) memudahkan penyelenggaraan penyelesaian untuk menggunakannya, dan biasanya lebih tinggi daripada pelaksanaan lain termasuk bahagian XML dan rentetan. Ini melibatkan langkah yang sama dengan mewujudkan mod XML yang ditentukan oleh pengguna, tetapi dalam pengalaman, lebih mudah untuk mengurus, mengekalkan dan membaca.
Atas ialah kandungan terperinci Bagaimana saya boleh lulus array ke dalam prosedur tersimpan SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!