以下代码可以解释您的问题...
我在下面用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,但它无效:(
答案 0 :(得分:0)
通常情况下,动态SQL总是让我解脱:)
但是很多我的焦虑,考虑到t-sql被解释,为什么不让tsql更像是一个动态语言本身,可以任何一个人提出为什么在t-sql中强力输入?这里是link,它有一些关于这个问题的选项解决方案,
我使用的解决方案:
执行sp_executesql @StrQuery