首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 資料教程 67:TableAdapter 精靈自動建立 Stored Procedure、SP 基礎觀念、安全性與維護性考量

     編輯:關於ASP.NET

前言

TableAdapter 精靈可自動產生 Stored Procedure 對應 Select/Insert/Update/Delete。本文介紹 SP 基礎觀念、精靈操作流程、安全性/維護性優缺點比較。

Stored Procedure 基礎

  • 一組預編譯 T-SQL 陳述式,接受 0~N 輸入參數,回傳標量/輸出參數/結果集。
  • 建立:CREATE PROCEDURE GetProductsByCategoryID @CategoryID int AS SELECT ... WHERE CategoryID = @CategoryID
  • 呼叫:EXEC GetProductsByCategoryID 1
  • 常簡稱 sprocs 或 SPs。

精靈自動建立 SP 流程

  1. 資料集設計師 → 新增 TableAdapter 或右鍵現有 → Add Query。
  2. 選 Create new stored procedures。
  3. 精靈根據查詢類型 (SELECT/INSERT/UPDATE/DELETE) 自動產生對應 SP 並部署至資料庫。
  4. TableAdapter 方法自動對應新建 SP。

SP 交易處理補充

SP 內多條命令不自動在交易中,需顯式控制:

CREATE PROCEDURE DeleteCategory
    @CategoryID int
AS
BEGIN TRANSACTION
DELETE FROM Products WHERE CategoryID = @CategoryID;
DELETE FROM Categories WHERE CategoryID = @CategoryID;
COMMIT TRANSACTION;

SP vs Ad-hoc SQL 觀點比較

面向Stored ProcedureAd-hoc SQL
安全性授權執行 SP,不需直接表權限需資料表直接權限
維護性集中管理、DBA 可獨立調優分散在應用程式代碼
效能預編譯、計畫快取、參數嗅探每次編譯、計畫可能不重用
彈性修改需部署、版本控制較複雜代碼即時修改、重新編譯即可
除錯VS 專業版支援 SP 偵錯應用程式偵錯器即可

參考:Rob Howard - Don't Use Stored Procedures Yet?、Frans Bouma - Stored Procedures are Bad, M'Kay?

結語

TableAdapter 精靈自動建立 SP 大幅降低導入門檻。選擇 SP 或 Ad-hoc SQL 應視團隊規模、DBA 參與度、部署流程、效能需求綜合決定。

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