擴充預存程序的執行特性

重要事項重要事項

未來的 Microsoft SQL Server 版本將移除這項功能。請勿在新的開發工作中使用此功能,並且儘速修改使用此功能的應用程式。 請改用 CLR 整合。

擴充預存程序的執行具有下列特性:

  • 擴充預存程序函數會在 Microsoft SQL Server 的安全性內容下執行。

  • 擴充預存程序函數會在 SQL Server 的處理序空間中執行。

  • 與擴充預存程序執行相關聯的執行緒與用於用戶端連接的執行緒相同。

    安全性注意事項安全性注意事項

    將擴充預存程序加入伺服器,並將執行權限授與其他使用者之前,系統管理員應徹底檢閱每個擴充預存程序,以確定其中不含任何有害或惡意的程式碼。

載入擴充預存程序 DLL 之後,DLL 在伺服器的位址空間仍保持載入狀態,直到停止 SQL Server,或系統管理員使用 DBCC DLL_name (FREE) 明確地卸載 DLL 為止。

擴充預存程序可以使用 EXECUTE 陳述式,從 Transact-SQL 當做預存程序執行:

EXECUTE @retval = xp_extendedProcName @param1, @param2 OUTPUT

參數

  • @ retval
    這是傳回值。

  • @ param1
    這是輸入參數。

  • @ param2
    這是輸入/輸出參數。

    警告注意事項注意

    擴充預存程序會提供效能增強功能並擴充 SQL Server 功能。不過,由於擴充預存程序 DLL 和 SQL Server 共用相同的位址空間,因此問題程序可能會對 SQL Server 運作造成不利的影響。雖然擴充預存程序 DLL 擲回的例外會由 SQL Server 處理,還是有可能使 SQL Server 資料區域受損。基於安全性考量,只有 SQL Server 系統管理員可以將擴充預存程序加入到 SQL Server。這些程序應該經過徹底測試,才能進行安裝。