ユーザー定義関数の表示
更新 : 2005 年 12 月 5 日
いくつかのシステム ストアド プロシージャやカタログ ビューでは、ストアド プロシージャに関する情報が提供されます。これらを使用して、次のことを行うことができます。
- 関数の定義を表示します。つまり、ユーザー定義関数の作成に使用された Transact-SQL ステートメントが表示されます。関数の作成に使用した Transact-SQL スクリプト ファイルがない場合にこれが役に立ちます。
- 作成時のスキーマやパラメータなど、関数についての情報を取得します。
- 指定した関数によって使用されるオブジェクト、および指定した関数を使用するオブジェクトの一覧を表示します。この情報により、データベース内のオブジェクトの変更や削除によって影響を受ける関数を特定できます。
ユーザー定義関数の定義を表示するには
ユーザー定義関数に関する情報を表示するには
ユーザー定義関数の依存関係を表示するには
例
A. ユーザー定義関数の情報を返すためのシステム カタログ ビューの使用
次の例では、sys.objects
カタログ ビューと sys.parameters
カタログ ビューを使用して、ユーザー定義関数とそのパラメータに関する情報を返します。
-- Display metadata about the user-defined functions in AdventureWorks.
USE AdventureWorks;
GO
SELECT *
FROM sys.objects
WHERE type IN ('IF','TF','FN','FS','FT');
GO
-- Return parameters associated with the functions
SELECT o.name AS FunctionName, p.*
FROM sys.objects AS o
JOIN sys.parameters AS p ON o.object_id = p.object_ID
WHERE type IN ('IF','TF','FN','FS','FT');
GO
B. OBJECT_DEFINITION の使用
次の例では、システム関数 OBJECT_DEFINITION を使用して、ユーザー定義関数 dbo.ufnGetContactInformation
の定義を返します。
USE AdventureWorks;
GO
SELECT OBJECT_DEFINITION(OBJECT_ID('dbo.ufnGetContactInformation'));
GO
C. sys.sql_dependencies の使用
次の例は、sys.sql
_dependencies
と sys.columns
カタログ ビューを使用して、ユーザー定義関数 dbo.ufnGetContactInformation
が依存するテーブル名と列名を返します。
USE AdventureWorks;
GO
SELECT d.class, OBJECT_NAME(d.object_id) AS ObjectName,
OBJECT_NAME(referenced_major_id) AS ReferencedObjectName,
referenced_minor_id AS ReferencedColumnID,
c.name AS ReferencedColumnName,
is_selected, is_updated, is_select_all
FROM sys.sql_dependencies AS d
JOIN sys.columns AS c ON c.object_id = d.referenced_major_id
AND c.column_id = d.referenced_minor_id
WHERE d.object_id = OBJECT_ID(N'AdventureWorks.dbo.ufnGetContactInformation');
GO
参照
その他の技術情報
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2005 年 12 月 5 日 |
|