ユーザー定義関数の表示

いくつかのシステム ストアド プロシージャやカタログ ビューでは、ストアド プロシージャに関する情報が提供されます。これらを使用して、次のことを行うことができます。

  • 関数の定義を表示します。つまり、ユーザー定義関数の作成に使用された Transact-SQL ステートメントが表示されます。関数の作成に使用した Transact-SQL スクリプト ファイルがない場合にこれが役に立ちます。

  • 作成時のスキーマやパラメータなど、関数についての情報を取得します。

  • 指定した関数によって使用されるオブジェクト、および指定した関数を使用するオブジェクトの一覧を表示します。この情報により、データベース内のオブジェクトの変更や削除によって影響を受ける関数を特定できます。

ユーザー定義関数の定義を表示するには

ユーザー定義関数に関する情報を表示するには

ユーザー定義関数の依存関係を表示するには

A. ユーザー定義関数の情報を返すためのシステム カタログ ビューの使用

次の例では、sys.objects カタログ ビューと sys.parameters カタログ ビューを使用して、ユーザー定義関数とそのパラメータに関する情報を返します。

-- Display metadata about the user-defined functions in AdventureWorks2008R2.
USE AdventureWorks2008R2;
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 AdventureWorks2008R2;
GO
SELECT OBJECT_DEFINITION(OBJECT_ID('dbo.ufnGetContactInformation'));
GO

C. sys.sql_expression_dependencies の使用

次の例は、sys.sql_expression_dependencies と sys.columns カタログ ビューを使用して、ユーザー定義関数 dbo.ufnGetContactInformation が依存するテーブル名と列名を返します。

USE AdventureWorks2008R2;
GO
SELECT OBJECT_NAME(d.referencing_id) AS referencing_entity, 
    OBJECT_NAME(referenced_id) AS referenced_entity, 
    referenced_minor_id AS referenced_column_id,
    c.name AS referenced_column 
FROM sys.sql_expression_dependencies AS d
JOIN sys.columns AS c ON c.object_id = d.referenced_id
    AND c.column_id = d.referenced_minor_id
WHERE d.referencing_id = OBJECT_ID(N'AdventureWorks2008R2.dbo.ufnGetContactInformation');

関連項目

概念

その他の技術情報