適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

指定したオブジェクトの定義の Transact-SQLTransact-SQL ソース テキストを返します。Returns the Transact-SQLTransact-SQL source text of the definition of a specified object.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions


OBJECT_DEFINITION ( object_id )  


使用するオブジェクトの ID です。Is the ID of the object to be used. object_idint, 、現在のデータベース コンテキスト内のオブジェクトが想定されます。object_id is int, and assumed to represent an object in the current database context.

戻り値の型Return Types



エラーが発生した場合、または呼び出し元にオブジェクトの表示権限がない場合は、NULL が返されます。Returns NULL on error or if a caller does not have permission to view the object.

ユーザーが所有しているか、または権限を与えられている、セキュリティ保護可能なリソースのメタデータのみを表示できます。A user can only view the metadata of securables that the user owns or on which the user has been granted permission. つまり、オブジェクトに対する権限がユーザーに与えられていない場合、メタデータを生成する組み込み関数 (OBJECT_DEFINITION など) が NULL を返す可能性があります。This means that metadata-emitting, built-in functions such as OBJECT_DEFINITION may return NULL if the user does not have any permission on the object. 詳細については、「 Metadata Visibility Configuration」を参照してください。For more information, see Metadata Visibility Configuration.


SQL Server データベース エンジンSQL Server Database Engine を前提としています object_id が現在のデータベース コンテキストでします。The SQL Server データベース エンジンSQL Server Database Engine assumes that object_id is in the current database context. オブジェクト定義の照合順序は、呼び出し元のデータベース コンテキストのそれと常に一致します。The collation of the object definition always matches that of the calling database context.

OBJECT_DEFINITION は、次の種類のオブジェクトに適用されます。OBJECT_DEFINITION applies to the following object types:

  • C = CHECK 制約C = Check constraint

  • D = 既定値 (制約またはスタンドアロン)D = Default (constraint or stand-alone)

  • P = SQL ストアド プロシージャP = SQL stored procedure

  • FN = SQL スカラー関数FN = SQL scalar function

  • R = ルールR = Rule

  • RF = レプリケーション フィルター プロシージャRF = Replication filter procedure

  • TR = SQL トリガー (スキーマ スコープ DML トリガー、またはデータベースまたはサーバー スコープの DDL トリガー)TR = SQL trigger (schema-scoped DML trigger, or DDL trigger at either the database or server scope)

  • IF = SQL インライン テーブル値関数IF = SQL inline table-valued function

  • TF = SQL テーブル値関数TF = SQL table-valued function

  • V = ビューV = View


システム オブジェクトの定義は、公開されます。System object definitions are publicly visible. ユーザー オブジェクトの定義は、オブジェクトの所有者、または次のいずれかの権限を許可された人が表示できます。ALTER、CONTROL、TAKE OWNERSHIP、VIEW DEFINITION。The definition of user objects is visible to the object owner or grantees that have any one of the following permissions: ALTER, CONTROL, TAKE OWNERSHIP, or VIEW DEFINITION. これらの権限は db_ownerdb_ddladmin、および db_securityadmin 固定データベース ロールのメンバーが暗黙的に保有します。These permissions are implicitly held by members of the db_owner, db_ddladmin, and db_securityadmin fixed database roles.


A.A. ユーザー定義オブジェクトのソース テキストを返すReturning the source text of a user-defined object

次の例では、ユーザー定義トリガー uAddress の定義を Person スキーマで返します。The following example returns the definition of a user-defined trigger, uAddress, in the Person schema. 組み込み関数 OBJECT_ID を使用して、トリガーのオブジェクト ID を OBJECT_DEFINITION ステートメントに返します。The built-in function OBJECT_ID is used to return the object ID of the trigger to the OBJECT_DEFINITION statement.

USE AdventureWorks2012;  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition];   

B.B. システム オブジェクトのソース テキストを返すReturning the source text of a system object

次の例では、システム ストアド プロシージャ sys.sp_columns の定義を返します。The following example returns the definition of the system stored procedure sys.sp_columns.

USE AdventureWorks2012;  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];  

参照See Also

メタデータ関数 (Transact-SQL) Metadata Functions (Transact-SQL)
OBJECT_ID (Transact-SQL) OBJECT_ID (Transact-SQL)
sp_helptext (Transact-SQL) sp_helptext (Transact-SQL)
sys.sql_modules (Transact-SQL) sys.sql_modules (Transact-SQL)
sys.server_sql_modules (Transact-SQL)sys.server_sql_modules (Transact-SQL)