0

这是下面的代码,可以解释您的问题...

我在下面创建一个带有 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)

——不行!!!

并抛出错误

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

有办法解决这个问题吗?

我试过这个,但它不工作:(

4

1 回答 1

0

正如它通常出现的那样,动态 SQL 总是能帮我:)

但令我焦虑的是,考虑到 t-sql 是被解释的,为什么不让 tsql 本身更像一种动态语言,有人能建议为什么在 t-sql 中输入如此强的类型吗?

这是有关该问题的一些选项解决方案的链接,

我使用的解决方案:

执行 sp_executesql @StrQuery

于 2010-03-30T11:28:29.520 回答