擴充預存程序的執行特性
適用於: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。 這些程式應該在安裝之前經過徹底測試。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應