預存程序基本概念
Microsoft SQL Server 中的預存程序類似於其他程式設計語言中的程序,這些程序可以:
接受輸入參數,並以輸出參數的形式將多個數值傳回呼叫程序或批次處理。
包含可在資料庫中執行作業的程式陳述式,包括呼叫其他程序。
將狀態值傳回呼叫程序或批次處理,以指示成功或失敗 (及失敗原因)。
Transact-SQL 的 EXECUTE 陳述式可用來執行預存程序。預存程序與其他函數不同,預存程序不會傳回數值來取代其名稱,也不能直接用在運算式中。
之所以要使用 SQL Server 中的預存程序,而不使用儲存在用戶端電腦的 Transact-SQL 程式,好處在於:
預存程序是登錄在伺服器中。
預存程序可以有安全性的屬性 (例如權限) 和擁有權鏈結,並且可以在其上附加憑證。
使用者可以被授與權限執行預存程序,不需對程序所參考的物件擁有直接的權限。
預存程序可以增強應用程式的安全性。
參數化的預存程序可以協助保護您的應用程式,免於受到 SQL 資料隱碼攻擊。如需詳細資訊,請參閱<SQL 資料隱碼>。
預存程序允許模組化的程式設計。
您可以建立一次程序,然後在程式中呼叫無數次。預存程序可以改進應用程式的可維護性,並允許應用程式以統一的方式存取資料庫。
預存程序是具名的程式碼,可供延遲繫結。
這可提供簡單程式碼發展的間接取值層級。
可降低網路傳輸量。
即使是需要好幾百行 Transact-SQL 程式碼的作業,也只要透過一個陳述式就可以執行程序中的程式碼,而不必在網路上傳送幾百行程式碼。