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

淺談 SQL Server 預存程序與觸發器核心概念

     編輯:關於SqlServer

預存程序分類

  1. 系統預存程序:sp_ 開頭,儲存於 master,提供管理功能(如 sp_help、sp_who)。
  2. 使用者預存程序:使用者資料庫建立,封裝業務邏輯,支援參數、流程控制、錯誤處理。
  3. 擴展預存程序:xp_ 開頭,呼叫外部 DLL(已淘汰,建議改用 CLR 整合)。

觸發器分類與特殊資料表

  • DML 觸發器:INSERT/UPDATE/DELETE 觸發,每張表各類型最多一個(舊版限制,新版可多個)。
  • DDL 觸發器:CREATE/ALTER/DROP 等結構變更觸發,資料庫或伺服器層級。
  • LOGON 觸發器:登入事件觸發,可用於稽核或限制連線。

Inserted / Deleted 魔術資料表

  • 儲存於記憶體,唯讀,結構與觸發表一致。
  • INSERTED:新增/修改後的資料(UPDATE 視為刪除舊+插入新)。
  • DELETED:刪除/修改前的資料。

效能與最佳實務

  • 避免在觸發器執行耗時邏輯(跨資料庫、發送郵件、複雜計算),改用 Service Broker 或非同步機制。
  • 使用 SET NOCOUNT ON 減少網路往返。
  • 謹慎使用巢狀觸發器(sp_configure 'nested triggers')。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved