REPLACE 是字串替換的核心函數,搭配 UPDATE 可批量修正髒資料。
UPDATE TableName SET ColumnName = REPLACE(ColumnName, 'old_value', 'new_value');
NTEXT、TEXT、IMAGE (已淘汰類型) 不支援直接 REPLACE,會報錯:
"函數 replace 的參數 1 的數據類型 ntext 無效"
UPDATE TableName SET ColumnName = REPLACE(CAST(ColumnName AS NVARCHAR(MAX)), 'old_value', 'new_value');
SQL Server 2005+ 建議直接使用 NVARCHAR(MAX)、VARCHAR(MAX)、VARBINARY(MAX) 取代舊 LOB 類型,原生支援所有字串函數。
UPDATE Products SET Description = REPLACE(REPLACE(REPLACE(Description, '舊品牌', '新品牌'), '舊型號', '新型號'), '舊規格', '新規格');
UPDATE Orders
SET Memo = CASE
WHEN Memo LIKE '%舊倉%' THEN REPLACE(Memo, '舊倉', '新倉')
WHEN Memo LIKE '%舊區%' THEN REPLACE(Memo, '舊區', '新區')
ELSE Memo
END;
WHERE ColumnName LIKE '%old_value%' 縮小掃描範圍 (仍可能掃描,但可利用全文索引)。