Share via


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

ms164628.note(ja-jp,SQL.90).gif重要 :
この機能は、Microsoft SQL Server の将来のバージョンで削除されます。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。 代わりに、CLR 統合を使用してください。

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

  • 拡張ストアド プロシージャ関数は Microsoft SQL Server のセキュリティ コンテキストで実行されます。
  • 拡張ストアド プロシージャ関数は SQL Server の処理領域で実行されます。
  • 拡張ストアド プロシージャの実行に関連付けられているスレッドは、クライアント接続に使用するスレッドと同じです。
    ms164628.security(ja-jp,SQL.90).gifセキュリティ メモ :
    システム管理者は、拡張ストアド プロシージャをサーバーに追加し、他のユーザーに実行権限を許可する前に、各拡張ストアド プロシージャに有害なコードや悪意のあるコードが含まれていないことを十分に確認する必要があります。

拡張ストアド プロシージャ DLL をロードすると、SQL Server が停止するか、または DBCC DLL_name (FREE) を使用して管理者により明示的にアンロードされるまで、その DLL はサーバーのアドレス領域にロードされた状態を維持します。

EXECUTE ステートメントを使用すると、拡張ストアド プロシージャをストアド プロシージャとして Transact-SQL から実行できます。

EXECUTE @retval = xp_extendedProcName @param1, @param2 OUTPUT

パラメータ

  • @ retval
    戻り値です。
  • @ param1
    入力パラメータです。
  • @ param2
    入力/出力パラメータです。

    ms164628.Caution(ja-jp,SQL.90).gif注意 :
    拡張ストアド プロシージャを使用すると、パフォーマンスの向上や、SQL Server の機能強化を図ることができます。ただし、拡張ストアド プロシージャ DLL と SQL Server は同じアドレス領域を共有するため、問題のあるプロシージャにより SQL Server の機能が影響を受けることがあります。拡張ストアド プロシージャ DLL によってスローされる例外は SQL Server で処理されますが、SQL Server のデータ領域に損傷を与える可能性があります。セキュリティ措置として、SQL Server に拡張ストアド プロシージャを組み込むことができるのは SQL Server システム管理者だけに限定されています。これらのプロシージャは詳細にテストしてからインストールする必要があります。

参照

概念

拡張ストアド プロシージャのプログラミング
SQL Server にインストールされた拡張ストアド プロシージャの照会

ヘルプおよび情報

SQL Server 2005 の参考資料の入手