異動複寫移除後,訂閱端資料庫常殘留大量 sp_MSupd_*、sp_MSdel_*、sp_MSins_* 等系統預存程序。若未清除,不僅佔用物件名稱空間,還可能干擾後續部署或造成混淆。本腳本直接查詢 sys.procedures 產生 DROP PROC 陳述式,複製執行即可批次清理。
SELECT 'DROP PROC dbo.' + name
FROM sys.procedures
WHERE name LIKE 'sp_MSupd_%'
UNION ALL
SELECT 'DROP PROC dbo.' + name
FROM sys.procedures
WHERE name LIKE 'sp_MSdel_%'
UNION ALL
SELECT 'DROP PROC dbo.' + name
FROM sys.procedures
WHERE name LIKE 'sp_MSins_%';
DROP PROC 陳述式。複寫移除後,sysarticles、syssubscriptions、MSreplication_objects 等系統資料表可能仍存殘留資料。若需徹底淨空,可執行:
-- 僅供參考,執行前請確認環境
EXEC sp_removedbreplication; -- 最標準的單指令清理複寫中繼資料
注意:sp_removedbreplication 會移除資料庫層級所有複寫中繼資料,請在確認無其他複寫拓撲依賴此資料庫時才使用。
sys.procedures 列表,事後對照驗證。