我有一个我要序列化到SQL Server表的哈希集。当序列化的hashset看起来像这样......
<InstallerContactIds>
<int>153771</int>
<int>209572</int>
</InstallerContactIds>
我正在使用以下内容将XML插入表格中......
INSERT INTO dbo.cv_AssessorActionPlanInstallers
SELECT @AssessorActionPlanId, InstallerId
From OPENXML (@XmlDocumentHandle, 'AssessorActionPlan/InstallerContactIds', 2)
With
(
InstallerId int 'int'
)
但是,我只将第一个id插入到表中。在这种情况下是否可以插入所有ID?
我正在使用SQL Server 2005
答案 0 :(得分:0)
您没有指定正在使用的SQL版本,但如果您使用的是2005或更新版本,则可以使用新的XML data type。
declare @xml xml
select @xml = '
<InstallerContactIds>
<int>153771</int>
<int>209572</int>
</InstallerContactIds>'
select
x.i.value('.', 'int')
from
@xml.nodes('/InstallerContactIds/int') as x(i)
如果您使用OpenXML,如果您这样做,它应该可以工作:
INSERT INTO dbo.cv_AssessorActionPlanInstallers
SELECT @AssessorActionPlanId, InstallerId
From OPENXML (@XmlDocumentHandle, 'AssessorActionPlan/InstallerContactIds/int', 2)
With
(
InstallerId int '.'
)