如何将数组作为参数传递给SQL Server 2005中的存储过程,我这不可能是SQL Server 2000,所以我们在过去传递逗号分隔值。
任何帮助表示赞赏
答案 0 :(得分:2)
有许多不同的方法,请参阅:
答案 1 :(得分:0)
Sql Server 2005仍然如此。
您使用XML类型
XML Support in Microsoft SQL Server 2005
以下是如何使用XML数据类型
将字符串拆分为行的示例DECLARE @textXML XML
DECLARE @data NVARCHAR(MAX),
@delimiter NVARCHAR(5)
SELECT @data = 'A,B,C',
@delimiter = ','
SELECT @textXML = CAST('<d>' + REPLACE(@data, @delimiter, '</d><d>') + '</d>' AS XML)
SELECT T.split.value('.', 'nvarchar(max)') AS data
FROM @textXML.nodes('/d') T(split)
答案 2 :(得分:0)
您可以发送XML,然后在过程中解析它,而不是CSV。例如,请查看Passing lists to SQL Server 2005 with XML Parameters
答案 3 :(得分:0)
有关将数组作为image / varbinary对象传递并在SP中解析它们的方法,请参阅Passing an array or DataTable into a stored procedure。