我有一個MS SQL 2008 R2標準數據庫。我有一列varchar(250)
數據和一列xml
。如何使用T-SQL內置函數的值更新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
和sql:column
,但這是TSQL函數的結果。)
你能告訴的東西類似於你想要做什麼?現在它非常抽象。你也可以指定SQL Server的版本,以及列是否真的是不贊成使用的類型'TEXT'或者你的意思是一個字符串列如'VARCHAR' /'NVARCHAR' ... –
我編輯了我的問題。現在應該更清楚了。 – Michas