2 つの列を持つテーブルがありますID
。2Value
番目の列の文字列の一部を変更したいと思います。
表の例:
ID Value
---------------------------------
1 c:\temp\123\abc\111
2 c:\temp\123\abc\222
3 c:\temp\123\abc\333
4 c:\temp\123\abc\444
123\
文字列内のはValue
不要になりました。試してみましUPDATE
たREPLACE
:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4
スクリプトを実行すると、SQL Server はエラーを報告しませんが、何も更新されません。なぜでしょうか?
ベストアンサー1
ワイルドカードは必要ありませんREPLACE
。2 番目の引数に入力した文字列を検索するだけなので、次のようにすれば動作するはずです。
UPDATE dbo.xxx
SET Value = REPLACE(Value, '123', '')
WHERE ID <=4
置換する列がtypeの場合text
、またはntext
nvarcharにキャストする必要がある場合
UPDATE dbo.xxx
SET Value = REPLACE(CAST(Value as nVarchar(4000)), '123', '')
WHERE ID <=4