次の方法で共有


sp_addextendedproc (Transact-SQL)

適用対象: SQL サーバー

新しい拡張ストアド プロシージャの名前を SQL Server に登録します。

Note

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

Transact-SQL 構文表記規則

構文

sp_addextendedproc
    [ @functname = ] N'functname'
    , [ @dllname = ] 'dllname'
[ ; ]

引数

[ @functname = ] N'functname'

ダイナミック リンク ライブラリ (DLL) 内で呼び出す関数の名前。 @functnamenvarchar(517)で、既定値はありません。 @functname 必要に応じて、フォーム <owner.function>に所有者名を含めることができます。

[ @dllname = ] 'dllname'

関数を含む DLL の名前。 @dllnamevarchar(255) で、既定値はありません。 DLL の完全なパスを指定する必要があります。

リターン コードの値

0 (成功) または 1 (失敗)。

結果セット

ありません。

解説

拡張ストアド プロシージャを作成した後、 sp_addextendedprocを使用して SQL Server に追加する必要があります。 詳細については、「 拡張ストアド プロシージャを SQL Server に追加するを参照してください。

このプロシージャは、 master データベースでのみ実行できます。 master以外のデータベースから拡張ストアド プロシージャを実行するには、拡張ストアド プロシージャの名前をmasterで修飾します。

sp_addextendedproc は、 sys.objects カタログ ビューにエントリを追加し、新しい拡張ストアド プロシージャの名前を SQL Server に登録します。 また、 sys.extended_procedures カタログ ビューにエントリが追加されます。

重要

完全なパスに登録されていない既存の DLL は、SQL Server にアップグレードした後は機能しません。 問題を修正するには、 sp_dropextendedproc を使用して DLL の登録を解除し、完全なパスを指定して sp_addextendedproc で再登録します。

アクセス許可

sysadmin固定サーバー ロールのメンバーのみがsp_addextendedprocを実行できます。

次の例では、拡張ストアド プロシージャ xp_hello 追加します。

USE master;
GO
EXEC sp_addextendedproc xp_hello, 'c:\xp_hello.dll';