我需要将int的集合传递给sql过程。Sql Server - 将数组传递给过程
alter PROC PrCustomerServicesUpd(
@CustomerId UNIQUEIDENTIFIER,
@ServicesIdXml NVARCHAR(1000),
@ServicesIdCount INT =1
)
AS
DECLARE @XmlDocHanle INT
EXEC sp_Xml_PrepareDocument @XmlDocHanle OUTPUT, @ServicesIdXml
SELECT * FROM OPENXML(@XmlDocHanle, '/ROOT/Services/ServicesId',@ServicesIdCount)
WITH (ServiceId INT)
EXEC sp_Xml_RemoveDocument @XmlDocHanle
go
PrCustomerServicesUpd '443c293e-fc78-4562-97f8-ee1f2b54f813'
,'<Services><ServiceId>12</ServiceId><ServiceId>156</ServiceId></Services>',22
该脚本返回一个名为'ServiceId'而不是2行的空字段。
它正常工作。你推荐什么用于SQL Server 2008 R2而不是openxml? – Alexandre 2011-04-07 07:37:53
@Alex /请参阅答案中的xml数据类型用法 – RichardTheKiwi 2011-04-07 07:40:07
您的意思是'text()'?这是什么意思? – Alexandre 2011-04-07 07:45:05