SQL Sever
パス(またはその他)を参照するテーブル( )がありますUNC
が、パスが変更されます。
パス列には多くのレコードがあり、パス全体ではなく、パスの一部だけを変更する必要があります。そして、すべてのレコードで同じ文字列を新しい文字列に変更する必要があります。
どうすれば簡単にこれを行うことができupdate
ますか?
SQL Sever
パス(またはその他)を参照するテーブル( )がありますUNC
が、パスが変更されます。
パス列には多くのレコードがあり、パス全体ではなく、パスの一部だけを変更する必要があります。そして、すべてのレコードで同じ文字列を新しい文字列に変更する必要があります。
どうすれば簡単にこれを行うことができupdate
ますか?
これは簡単です:
update my_table
set path = replace(path, 'oldstring', 'newstring')
UPDATE [table]
SET [column] = REPLACE([column], '/foo/', '/bar/')
上記を試しましたが、正しい結果が得られませんでした。次の1つは行います:
update table
set path = replace(path, 'oldstring', 'newstring') where path = 'oldstring'
UPDATE CustomReports_Ta
SET vchFilter = REPLACE(CAST(vchFilter AS nvarchar(max)), '\\Ingl-report\Templates', 'C:\Customer_Templates')
where CAST(vchFilter AS nvarchar(max)) LIKE '%\\Ingl-report\Templates%'
関数がないとCAST
エラーが発生しました
関数の引数1の引数データ型ntext
が無効ですreplace
。
このクエリを使用できます
update table_name set column_name = replace (column_name , 'oldstring' ,'newstring') where column_name like 'oldstring%'
すべての答えは素晴らしいですが、私はあなたに良い例をあげたいだけです
select replace('this value from table', 'table', 'table but updated')
このSQLステートメントは、指定されたステートメント(最初のパラメーター)内の「テーブル」(2番目のパラメーター)という単語の存在を3番目のパラメーターに置き換えます。
初期値はですthis value from table
が、replace関数を実行すると次のようになりますthis value from table but updated
これが実際の例です
UPDATE publication
SET doi = replace(doi, '10.7440/perifrasis', '10.25025/perifrasis')
WHERE doi like '10.7440/perifrasis%'
たとえば、この値がある場合
10.7440/perifrasis.2010.1.issue-1
になります
10.25025/perifrasis.2010.1.issue-1
これにより、視覚化が向上することを願っています
select replace(ImagePath, '~/', '../') as NewImagePath from tblMyTable
ここで、「ImagePath」は私の列名です。
「NewImagePath」は一時的な列です「ImagePath」の名前
「〜/」は現在の文字列です。(古い文字列)
「../」は必要な文字列です。(新しい文字列)
「tblMyTable」はデータベース内のテーブルです。
ターゲットの列タイプがテキストのようにvarchar/nvarchar以外の場合、列の値を文字列としてキャストしてから、次のように変換する必要があります。
update URL_TABLE
set Parameters = REPLACE ( cast(Parameters as varchar(max)), 'india', 'bharat')
where URL_ID='150721_013359670'
置換関数を使用してパスを置換する必要があります。
update table_name set column_name = replace(column_name, 'oldstring', 'newstring')
ここでcolumn_name
は、変更する列を参照します。
それがうまくいくことを願っています。
実行時に電子メールテンプレートの大きなテキストを置き換えることもできます。これはその簡単な例です。
DECLARE @xml NVARCHAR(MAX)
SET @xml = CAST((SELECT [column] AS 'td','',
,[StartDate] AS 'td'
FROM [table]
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
select REPLACE((EmailTemplate), '[@xml]', @xml) as Newtemplate
FROM [dbo].[template] where id = 1