我有一个 MS SQL 2008 R2 标准数据库。我有一列包含varchar(250)
数据,一列包含xml
.
CREATE TABLE [dbo].[art](
[id] [int] IDENTITY(1,1) NOT NULL,
[idstr] [varchar](250) NULL,
[rest] [xml] NOT NULL,
CONSTRAINT [PK_art] PRIMARY KEY CLUSTERED ([id] ASC)
)
问题是我想将字符串函数的结果插入到 xml 中,大约有 140 条记录。我尝试使用xml.modify
动态生成的文本。
UPDATE [pwi_new].[dbo].[art]
SET rest.modify('insert <e><k>link</k><v>'
+ my_string_function(idstr) + '</v></e> into (/root)[1]')
WHERE parent = 160
AND idstr LIKE '%&%'
GO
但是,我遇到了这个错误:
The argument 1 of the XML data type method "modify" must be a string literal.
有任何想法吗?我想避免使用时间字段、外部语言和从生成的字符串执行 TSQL?(我听说过sql:variable
and sql:column
,但这是 tsql 函数的结果。)