不能将xml dml表达式作为字符串插入

时间:2010-03-30 09:22:19

标签: sql-server-2005 xml-dml

以下代码可以解释您的问题...

我在下面用xml列创建一个表并声明一个变量,初始化它并将Value插入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)

- 不起作用!!!

并抛出错误

xml数据类型方法“modify”的参数1必须是字符串文字。

有没有办法解决这个问题?

我尝试了this,但它无效:(

1 个答案:

答案 0 :(得分:0)

通常情况下,动态SQL总是让我解脱:)

但是很多我的焦虑,考虑到t-sql被解释,为什么不让tsql更像是一个动态语言本身,可以任何一个人提出为什么在t-sql中强力输入

这里是link,它有一些关于这个问题的选项解决方案,

我使用的解决方案:

  

执行sp_executesql @StrQuery