не может вставить выражение XML XML как строку - PullRequest
0 голосов
/ 30 марта 2010

Вот код ниже, который объяснит вам проблему ...

Я создаю таблицу ниже со столбцом 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 «modify» должен быть строковым литералом.

есть ли способ обойти это?

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

1 Ответ

0 голосов
/ 30 марта 2010

Как обычно получается, динамический SQL - это то, что всегда приходило мне на помощь:)

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

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

Решение, которое я использовал:

Выполнить sp_executesql @ StrQuery

...