2010-03-30 1 views
0

Вот код ниже будет объяснить вам эту проблему ...не может вставить выражение DML XML в виде строки

создать таблицу ниже со столбцом XML и объявить переменную, инициализировать его и вставьте Значение в столбце XML,

create table CustomerInfo 
(XmlConfigInfo xml) 

declare @StrTemp nvarchar(2000) 

set @StrTemp = '<Test></Test>' 

insert into [CustomerInfo](XmlConfigInfo) 
values (@StrTemp) 

Затем идет часть вопроса ,, если я пишу это ...

update [CustomerInfo] set XmlConfigInfo.modify('insert <Info></Info> into (//Test)[1]') 

- работает отлично !!!

, но когда я пытаюсь это,

set @StrTemp = 'insert <Info></Info> into (//Test)[1]' 

update [CustomerInfo] set XmlConfigInfo.modify(@StrTemp) 

- не работает !!!

и выдает сообщение об ошибке

Аргумент 1 метода типа XML-данных «изменить» должен быть строковым.

есть ли способ для этого?

Я попытался this, но он не работает :(

ответ

0

AS обычно выходит, Dynamic SQL является то, что всегда придет мне на помощь :)

но к моей тревоге, учитывая т -sql интерпретируется, почему бы не сделать tsql больше похожим на динамический язык, может ли кто-нибудь предположить, почему такая сильная типизация в t-sql?

вот link, что есть несколько вариантов решения относительно проблемы,

Решение я использовал:

Execute sp_executesql @StrQuery

Смежные вопросы