共用方式為


預存程序基本概念

MicrosoftSQL Server 中的預存程序類似於其他程式設計語言中的程序,這些程序可以:

  • 接受輸入參數,並以輸出參數的形式將多個數值傳回呼叫程序或批次處理。

  • 包含可在資料庫中執行作業的程式陳述式,包括呼叫其他程序。

  • 將狀態值傳回呼叫程序或批次處理,以指示成功或失敗 (及失敗原因)。

Transact-SQL 的 EXECUTE 陳述式可用來執行預存程序。預存程序與其他函數不同,預存程序不會傳回數值來取代其名稱,也不能直接用在運算式中。

之所以要使用 SQL Server 中的預存程序,而不使用儲存在用戶端電腦的 Transact-SQL 程式,好處在於:

  • 預存程序是登錄在伺服器中。

  • 預存程序可以有安全性的屬性 (例如權限) 和擁有權鏈結,並且可以在其上附加憑證。

    使用者可以被授與權限執行預存程序,不需對程序所參考的物件擁有直接的權限。

  • 預存程序可以增強應用程式的安全性。

    參數化的預存程序可以協助保護您的應用程式,免於受到 SQL 資料隱碼攻擊。如需詳細資訊,請參閱<SQL 資料隱碼>。

  • 預存程序允許模組化的程式設計。

    您可以建立一次程序,然後在程式中呼叫無數次。預存程序可以改進應用程式的可維護性,並允許應用程式以統一的方式存取資料庫。

  • 預存程序是具名的程式碼,可供延遲繫結。

    這可提供簡單程式碼發展的間接取值層級。

  • 可降低網路傳輸量。

    即使是需要好幾百行 Transact-SQL 程式碼的作業,也只要透過一個陳述式就可以執行程序中的程式碼,而不必在網路上傳送幾百行程式碼。

請參閱

概念

其他資源