OBJECT_DEFINITION (Transact-SQL)OBJECT_DEFINITION (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Возвращает исходный текст Transact-SQLTransact-SQL определения указанного объекта.Returns the Transact-SQLTransact-SQL source text of the definition of a specified object.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

  
OBJECT_DEFINITION ( object_id )  

АргументыArguments

object_idobject_id
Идентификатор объекта, который будет использован.Is the ID of the object to be used. Аргумент object_id имеет тип int и представляет объект, который находится в контексте текущей базы данных.object_id is int, and assumed to represent an object in the current database context.

Типы возвращаемых данныхReturn Types

nvarchar(max)nvarchar(max)

ИсключенияExceptions

Возвращает значение 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.

RemarksRemarks

Компонент Компонент SQL Server Database EngineSQL Server Database Engine предполагает, что объект с идентификатором object_id находится в контексте текущей базы данных.The Компонент SQL Server Database EngineSQL 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 = проверочное ограничение;C = Check constraint

  • D = значение по умолчанию (ограничение или изолированное);D = Default (constraint or stand-alone)

  • P = хранимая процедура SQLP = SQL stored procedure

  • FN = скалярная функция SQLFN = 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

РазрешенияPermissions

Определения системных объектов видимы для всех.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_owner, db_ddladminи db_securityadmin .These permissions are implicitly held by members of the db_owner, db_ddladmin, and db_securityadmin fixed database roles.

ПримерыExamples

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 используется, чтобы передать идентификатор объекта триггера в инструкцию 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;  
GO  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition];   
GO  

Б.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;  
GO  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];  
GO  

См. также:See Also

Функции метаданных (Transact-SQL) Metadata Functions (Transact-SQL)
OBJECT_NAME (Transact-SQL) OBJECT_NAME (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)