将Hashset内容序列化为SQL表

时间:2009-08-27 20:09:36

标签: sql serialization openxml hashset

我有一个我要序列化到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

1 个答案:

答案 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 '.'
)