我需要將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