次の方法で共有


sp_addextendedproc (Transact-SQL)

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

注意

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

トピック リンク アイコン Transact-SQL 構文表記規則

構文

sp_addextendedproc [ @functname = ] 'procedure' , 
     [ @dllname = ] 'dll'

引数

  • [ @functname = ] 'procedure'
    ダイナミックリンク ライブラリ (DLL) の内部で呼び出す関数の名前を指定します。 procedure のデータ型は nvarchar(517) で、既定値はありません。 procedure には、owner.function の形式で所有者名を含めることもできます。

  • [ @dllname = ] 'dll'
    関数が含まれている DLL の名前を指定します。 dll のデータ型は varchar(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 2012 へのアップグレード後、機能しなくなります。 この問題を修正するには、sp_dropextendedproc を使用して DLL の登録を解除し、sp_addextendedproc を使用して完全パスと共に登録し直します。

権限

sp_addextendedproc を実行できるのは、sysadmin 固定サーバー ロールのメンバーだけです。

使用例

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

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

関連項目

参照

EXECUTE (Transact-SQL)

GRANT (Transact-SQL)

REVOKE (Transact-SQL)

sp_dropextendedproc (Transact-SQL)

sp_helpextendedproc (Transact-SQL)

システム ストアド プロシージャ (Transact-SQL)