У меня есть стандартная база данных 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
и sql:column
, но это результат функции tsql.)
TEXT
или если вы имеете в виду строковый столбец, напримерVARCHAR
/NVARCHAR
... - person Aaron Bertrand   schedule 22.09.2011