次の方法で共有


拡張ストアド プロシージャの実行における特性

適用対象: SQL サーバー

重要

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに CLR Integration を使用してください。

拡張ストアド プロシージャの実行には次の 3 つの特性があります。

  • 拡張ストアド プロシージャ関数は、Microsoft SQL Server のセキュリティ コンテキストで実行されます。

  • 拡張ストアド プロシージャ関数は、SQL Server のプロセス空間で実行されます。

  • 拡張ストアド プロシージャの実行に関連付けられているスレッドは、クライアント接続に使用するスレッドと同じです。

    重要

    システム管理者は、拡張ストアド プロシージャをサーバーに追加し、他のユーザーに実行権限を許可する前に、各拡張ストアド プロシージャに有害なコードや悪意のあるコードが含まれていないことを十分に確認する必要があります。

  • 拡張ストアド プロシージャ DLL が読み込まれた後、SQL Server が停止するか、管理者が DBCC DLL_name (FREE) を使用して DLL を明示的にアンロードするまで、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 にインストールされた拡張ストアド プロシージャの照会