Я пытаюсь вставить значения «DocumentFields» из XML в SQL Server 2008, но не повезло.Вставить XML-данные в SQL Server
Не могли бы вы помочь мне в этом? Ниже приведен XML и хранимая процедура.
CREATE PROCEDURE [dbo].[SP_Test]
(@xmlData As XML)
AS
BEGIN
DECLARE @idoc int
SET @xmlData='<?xml version="1.0" encoding="UTF-8"?>
<ImportSession>
<Documents>
<Document DocumentClassName="RDOCCLASS" Processed="0" Priority="2">
<DocumentFields>
<DocumentField Name="DocumentID" Value="419" />
<DocumentField Name="MessageID" Value="apap-12w-asqwe" />
<DocumentField Name="AccountName" Value="John Thomas" />
<DocumentField Name="AccountNumber" Value="1234567890" />
<DocumentField Name="Contact" Value="00012736782345" />
</DocumentFields>
</Document>
</Documents>
</ImportSession>'
EXEC sp_xml_preparedocument @idoc OUTPUT, @xmlData;
INSERT INTO dbo.[Account]([DocumentID], [MessageID], [AccountName], [AccountNumber], [Contact])
SELECT *
FROM OPENXML(@idoc,/ImportSession/Documents/Document/DocumentFields',1)
WITH (DocumentID varchar(20),MessageID varchar(30),
AccountName varchar(20),AccountNumber varchar(20),
Contact varchar(20)
);
EXEC sp_xml_removedocument @xmlData;
END
Благодаря Арш
не повезло ... подробнее пожалуйста. Каким образом это не работает? Получение ошибки? Если да, включите в свой вопрос сообщение об ошибке. –
Боковое примечание: вы не должны ** использовать префикс 'sp_' для ваших хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) и вы рискуете столкнуться с именем когда-нибудь в будущем. [Это также плохо для производительности вашей хранимой процедуры] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Лучше просто просто избегать 'sp_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –
Hi Arsh, Пожалуйста, помните о том, что большинство профессионалов, дающих ответы на SO, жаждут очков репутации. [Пожалуйста, прочтите это: кто-то-ответы] (http://stackoverflow.com/help/someone-answers). Было бы неплохо также взглянуть на ваши старые вопросы. Спасибо! – Shnugo