テーブルの名前はMasterTable
列
ID
タイプBIGINT
、
Name
type VARCHAR(200)
(xml
何らかの理由で型データを格納します)
Name
次のように構造化されたデータが含まれています
<en-US>SomeEnglishText</en-US><it-IT>SomeItalicText</it-IT>
テーブルに移動する必要がUpdate
ある場合Master
は、その時点でをキャストしVarchar
て、特定のタグの一部、つまりいずれかをxml
条件付きで更新/置換する必要があります。value
en-US / it-IT
また、列にデータ/タグがない可能性があるName
ため、データを挿入するときにInsert
、のようにテーブルのタグ要素が空になると思います<en-US></en-US><it-IT></it-IT>
。したがって、update
クエリはタグ要素の空の値、つまりを処理する必要があります。en-US/it-IT
私は次の更新クエリのようにそれをやろうとしています。
DECLARE @Str VARCHAR(200)
SET @Str = 'Test Text'
UPDATE [MasterTable]
SET [Name] = cast([MasterTable].[Name] as xml).modify('replace value of (en-US/text())[1] with sql:variable("@Str")')
WHERE [ID]=18
クエリの実行時に次のエラーが発生します
xmlデータ型メソッド「modify」の不正使用。このコンテキストでは、ミューテイタ以外のメソッドが必要です。