Поскольку это поле NTEXT, к сожалению, вы не можете использовать обычные строковые функции.
Какую версию SQL Server вы используете ??
Если вы используете SQL Server 2005 или более позднюю версию, у вас есть два варианта:
- вы можете привести ваш NTEXT к NVARCHAR (MAX), а затем вы можете использовать все обычные строковые функции, такие как
REPLACE
, SUBSTRING
и так далее
- вы можете преобразовать свой NTEXT в XML и использовать функции XML, доступные для SQL Server 2005
Первый вариант может выглядеть так:
UPDATE
YourTable
SET
Value = CAST(REPLACE(CAST(Value as NVARCHAR(MAX)),
'Colour="Yellow"', 'Colour="Blue"') AS NTEXT)
WHERE
.......
Второй вариант см. В ответе Квазного - однако, учтите: ваш XML немного странный .....
<TYPE><Colour="Yellow" Size="Large"></TYPE>
немного необычно и, на мой взгляд, неверно - либо «Цвет» является атрибутом <TYPE>
тега
<TYPE Colour="Yellow" Size="Large"></TYPE>
или затем <Colour>
сам по себе является тегом XML, но тогда «Желтый» должен быть назначен
атрибуты:
<TYPE><Colour current="Yellow" Size="Large"></TYPE>
Вы не можете назначить значение непосредственно тегу XML, как это делается в вашем XML, ИМХО.
Если вы используете SQL Server 2000, все станет намного сложнее ....
Марк