Share via


擴充預存程序的執行特性

適用於:SQL Server

重要

SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 CLR 整合。

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

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

  • 擴充預存程式函式會在 SQL Server 的進程空間中執行。

  • 與執行擴充預存程式相關聯的線程,與客戶端連接所使用的線程相同。

    重要

    將擴充預存程式新增至伺服器並將執行許可權授與其他使用者之前,系統管理員應該徹底檢閱每個擴充預存程式,以確保它不包含有害或惡意代碼。

  • 載入擴充預存程式 DLL 之後,DLL 會保留在伺服器的位址空間中載入,直到 SQL Server 停止或系統管理員使用 DBCC DLL_name 明確卸除 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。 這些程式應該在安裝之前經過徹底測試。

另請參閱

程序設計擴充預存程式
查詢 SQL Server 中安裝的擴充預存程式