兩種設定方式
方法一:企業管理器圖形介面
- 展開「資料庫」→「master」→「預存程序」。
- 右鍵目標預存程序 →「屬性」。
- 勾選「每當 SQL Server 啟動時執行」。
方法二:T-SQL 指令 (適合腳本化部署)
USE master;
GO
EXEC sp_procoption '預存程序名稱', 'startup', 'on';
GO
啟動預存程序特性與限制
- 必須建立在
master 資料庫。
- 由
sysadmin 固定伺服器角色成員建立。
- 以背景程序身分執行,不可有輸入參數。
- 無數量限制,但每個佔用一條連線。多個串行工作建議寫一個主啟動程序呼叫其他程序,僅佔用一條連線。
- 在最後一個資料庫復原完成後開始執行。
- 若需跳過啟動程序,啟動參數加入追蹤旗標
-T4022;最小組態啟動 (-f) 也不會執行。
常見應用場景
- 啟動自訂監控/記錄程序 (如記錄啟動時間、檢查磁碟空間)。
- 預熱熱門資料表載入緩衝區。
- 重建暫存表、初始化應用程式快取資料。
- 檢查複寫/記錄傳送狀態並發送警示。
查詢目前啟動程序清單
SELECT name FROM sysobjects
WHERE type = 'P' AND OBJECTPROPERTY(id, 'IsStartup') = 1;
總結
善用 sp_procoption 設定啟動預存程序,能自動化執行例行初始化作業,提升服務可用性與運維效率。注意連線佔用與參數限制,設計單一主啟動程序統籌子任務為最佳實務。