首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL REPLACE 批量替換:修改、新增、刪除欄位內容完整技巧

     編輯:關於SqlServer

核心語法

UPDATE TableName
SET ColumnName = REPLACE(ColumnName, 'OldContent', 'NewContent');

四大實戰場景

1. 完整替換:域名變更

UPDATE BackupFile
SET Url = REPLACE(Url, 'https://www.maidq.com', 'https://maidq.com');

2. 條件前綴/後綴新增

UPDATE BackupFile
SET LogicalName = REPLACE(LogicalName, LogicalName, 'Tmp' + LogicalName + ' End')
WHERE FileNumber = 1;

3. 移除前 N 字元

UPDATE BackupFile
SET LogicalName = REPLACE(LogicalName, LogicalName, SUBSTRING(LogicalName, 3, LEN(LogicalName)-2))
WHERE FileNumber = 1;

4. 移除後 N 字元

UPDATE BackupFile
SET LogicalName = REPLACE(LogicalName, LogicalName, SUBSTRING(LogicalName, 1, LEN(LogicalName)-4))
WHERE FileNumber = 2;

安全驗證流程

-- 1. 先用 SELECT 預覽結果
SELECT REPLACE(ColumnName, 'Old', 'New') AS Preview FROM TableName WHERE ...;

-- 2. 確認無誤後執行 UPDATE
UPDATE TableName SET ColumnName = REPLACE(ColumnName, 'Old', 'New') WHERE ...;

進階技巧

  • 多重替換鏈: REPLACE(REPLACE(Col, 'A', 'B'), 'C', 'D')
  • 搭配 CASE 條件替換: SET Col = CASE WHEN Col LIKE '%A%' THEN REPLACE(Col, 'A', 'B') ELSE Col END
  • 大小寫敏感: 視資料庫 Collation 決定,需區分時用 COLLATE Latin1_General_CS_AS

注意事項

  • REPLACE 會掃描全表,大表請分批處理(加 WHERE 條件或分頁)
  • 無 WHERE 時影響全表,務必先備份或在交易中測試
  • 避免在索引欄位大量更新導致碎片,事後考慮 REBUILD INDEX

總結

REPLACE 配合 SUBSTRING、LEN、條件判斷,可靈活實現欄位內容的批量替換、前後綴新增、字元截取。執行前務必 SELECT 預覽 確認結果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved