Сериализация содержимого Hashset в таблицу SQL - PullRequest
0 голосов
/ 28 августа 2009

У меня есть хэш-набор, который я хочу сериализовать в таблицу SQL Server. Когда сериализованный хэшсет выглядит так ...

<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'           
)

Однако я получаю только первый идентификатор, вставленный в таблицу. Можно ли в этом случае вставить все идентификаторы?

Я использую SQL Server 2005

1 Ответ

0 голосов
/ 28 августа 2009

Вы не указали, какую версию SQL вы используете, но если вы используете 2005 или более новую версию, вы можете использовать новый тип данных XML .

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 '.'
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...