【问题标题】:can't insert xml dml expression as a string无法将 xml dml 表达式作为字符串插入
【发布时间】:2010-03-30 09:22:18
【问题描述】:

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

我在下面创建一个带有 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数据类型方法“modify”的参数1必须是字符串字面量。

有办法解决这个问题吗?

我试过this,但它不起作用:(

【问题讨论】:

    标签: sql-server-2005 xml-dml


    【解决方案1】:

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

    但令我非常焦虑的是,考虑到 t-sql 是解释型的,为什么不让 tsql 本身更像一种动态语言呢?谁能指出为什么 t-sql 中的强类型化?

    这里是link,有一些关于该问题的解决方案,

    我使用的解决方案:

    执行 sp_executesql @StrQuery

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-14
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多