sys.objects (Transact-SQL) Contains a row for each user-defined, schema-scoped object that is created within a database. Note |
|---|
sys.objects does not show DDL triggers, because they are not schema-scoped. All triggers, both DML and DDL, are found in sys.triggers. sys.triggers supports a mixture of name-scoping rules for the various kinds of triggers. |
Column name | Data type | Description |
|---|
name | sysname | Object name. | object_id | int | Object identification number. Is unique within a database. | principal_id | int | ID of the individual owner, if different from the schema owner. By default, schema-contained objects are owned by the schema owner. However, an alternate owner can be specified by using the ALTER AUTHORIZATION statement to change ownership. Is NULL if there is no alternate individual owner. Is NULL if the object type is one of the following: C = CHECK constraint D = DEFAULT (constraint or stand-alone) F = FOREIGN KEY constraint PK = PRIMARY KEY constraint R = Rule (old-style, stand-alone) TA = Assembly (CLR-integration) trigger TR = SQL trigger UQ = UNIQUE constraint | schema_id | int | ID of the schema that the object is contained in. Schema-scoped system objects are always contained in the sys or INFORMATION_SCHEMA schemas. | parent_object_id | int | ID of the object to which this object belongs. 0 = Not a child object. | type | char(2) | Object type: AF = Aggregate function (CLR) C = CHECK constraint D = DEFAULT (constraint or stand-alone) F = FOREIGN KEY constraint FN = SQL scalar function FS = Assembly (CLR) scalar-function FT = Assembly (CLR) table-valued function IF = SQL inline table-valued function IT = Internal table P = SQL Stored Procedure PC = Assembly (CLR) stored-procedure PG = Plan guide PK = PRIMARY KEY constraint R = Rule (old-style, stand-alone) RF = Replication-filter-procedure S = System base table SN = Synonym SO = Sequence object SQ = Service queue TA = Assembly (CLR) DML trigger TF = SQL table-valued-function TR = SQL DML trigger TT = Table type U = Table (user-defined) UQ = UNIQUE constraint V = View X = Extended stored procedure | type_desc | nvarchar(60) | Description of the object type: AGGREGATE_FUNCTION CHECK_CONSTRAINT CLR_SCALAR_FUNCTION CLR_STORED_PROCEDURE CLR_TABLE_VALUED_FUNCTION CLR_TRIGGER DEFAULT_CONSTRAINT EXTENDED_STORED_PROCEDURE FOREIGN_KEY_CONSTRAINT INTERNAL_TABLE PLAN_GUIDE PRIMARY_KEY_CONSTRAINT REPLICATION_FILTER_PROCEDURE RULE SEQUENCE_OBJECT SERVICE_QUEUE SQL_INLINE_TABLE_VALUED_FUNCTION SQL_SCALAR_FUNCTION SQL_STORED_PROCEDURE SQL_TABLE_VALUED_FUNCTION SQL_TRIGGER SYNONYM SYSTEM_TABLE TABLE_TYPE UNIQUE_CONSTRAINT USER_TABLE VIEW | create_date | datetime | Date the object was created. | modify_date | datetime | Date the object was last modified by using an ALTER statement. If the object is a table or a view, modify_date also changes when a clustered index on the table or view is created or altered. | is_ms_shipped | bit | Object is created by an internal SQL Server component. | is_published | bit | Object is published. | is_schema_published | bit | Only the schema of the object is published. |

Remarks
You can apply the OBJECT_ID, OBJECT_NAME, and OBJECTPROPERTY() built-in functions to the objects shown in sys.objects. There is a version of this view with the same schema, called sys.system_objects, that shows system objects. There is another view called sys.all_objects that shows both system and user objects. All three catalog views have the same structure. In this version of SQL Server, an extended index, such as an XML index or spatial index, is considered an internal table in sys.objects (type = IT and type_desc = INTERNAL_TABLE). For an extended index: name is the internal name of the index table. parent_object_id is the object_id of the base table. is_ms_shipped, is_published and is_schema_published columns are set to 0.

Permissions
The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. For more information, see Metadata Visibility Configuration.

Examples
A.Returning all the objects that have been modified in the last N daysBefore you run the following query, replace <database_name> and <n_days> with valid values.
USE <database_name>;
GO
SELECT name AS object_name
,SCHEMA_NAME(schema_id) AS schema_name
,type_desc
,create_date
,modify_date
FROM sys.objects
WHERE modify_date > GETDATE() - <n_days>
ORDER BY modify_date;
GO
B.Returning the parameters for a specified stored procedure or functionBefore you run the following query, replace <database_name> and <schema_name.object_name> with valid names.
USE <database_name>;
GO
SELECT SCHEMA_NAME(schema_id) AS schema_name
,o.name AS object_name
,o.type_desc
,p.parameter_id
,p.name AS parameter_name
,TYPE_NAME(p.user_type_id) AS parameter_type
,p.max_length
,p.precision
,p.scale
,p.is_output
FROM sys.objects AS o
INNER JOIN sys.parameters AS p ON o.object_id = p.object_id
WHERE o.object_id = OBJECT_ID('<schema_name.object_name>')
ORDER BY schema_name, o.object_name, p.parameter_id;
GO
C.Returning all the user-defined functions in a databaseBefore you run the following query, replace <database_name> with a valid database name.
USE <database_name>;
GO
SELECT name AS function_name
,SCHEMA_NAME(schema_id) AS schema_name
,type_desc
,create_date
,modify_date
FROM sys.objects
WHERE type_desc LIKE '%FUNCTION%';
GO
D.Returning the owner of each object in a schema.Before you run the following query, replace all occurrences of <database_name> and <schema_name> with valid names.
USE <database_name>;
GO
SELECT 'OBJECT' AS entity_type
,USER_NAME(OBJECTPROPERTY(object_id, 'OwnerId')) AS owner_name
,name
FROM sys.objects WHERE SCHEMA_NAME(schema_id) = '<schema_name>'
UNION
SELECT 'TYPE' AS entity_type
,USER_NAME(TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId')) AS owner_name
,name
FROM sys.types WHERE SCHEMA_NAME(schema_id) = '<schema_name>'
UNION
SELECT 'XML SCHEMA COLLECTION' AS entity_type
,COALESCE(USER_NAME(xsc.principal_id),USER_NAME(s.principal_id)) AS owner_name
,xsc.name
FROM sys.xml_schema_collections AS xsc JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO

See Also
|
sys.objects (Transact-SQL) Contiene una fila para cada objeto de ámbito de esquema definido por el usuario que se cree en la base de datos. Nota |
|---|
sys.objects no muestra los desencadenadores DDL, porque no tienen el ámbito de esquema. Todos los desencadenadores, tanto DML como DDL, se encuentran en sys.triggers. sys.triggers admite una mezcla de reglas de ámbito de nombre para los distintos tipos de desencadenadores. |
Nombre de columna | Tipo de datos | Descripción |
|---|
name | sysname | Nombre del objeto. | object_id | int | Número de identificación del objeto. Es único en una base de datos. | principal_id | int | Identificador del propietario individual, si es diferente del propietario del esquema. De forma predeterminada, los objetos contenidos en el esquema pertenecen al propietario del esquema. No obstante, es posible especificar un propietario alternativo mediante la instrucción ALTER AUTHORIZATION para cambiar la propiedad. Es NULL si no existe ningún propietario individual alternativo. Es NULL si el tipo de objeto es uno de los siguientes: C = Restricción CHECK D = DEFAULT (restricción o independiente) F = Restricción FOREIGN KEY PK = Restricción PRIMARY KEY R = Regla (estilo antiguo, independiente) TA = Desencadenador de ensamblado (integración CLR) TR = Desencadenador SQL UQ = Restricción UNIQUE | schema_id | int | Identificador del esquema que contiene el objeto. Los objetos de sistema con ámbito de esquema siempre están contenidos en los esquemas sys o INFORMATION_SCHEMA. | parent_object_id | int | Identificador del objeto al que pertenece este objeto. 0 = No es un objeto secundario. | type | char(2) | Tipo de objeto: AF = Función de agregado (CLR) C = Restricción CHECK D = DEFAULT (restricción o independiente) F = Restricción FOREIGN KEY FN = Función escalar de SQL FS = Función escalar del ensamblado (CLR) FT = Función con valores de tabla de ensamblado (CLR) IF = Función SQL insertada con valores de tabla IT = Tabla interna P = Procedimiento almacenado de SQL PC = Procedimiento almacenado del ensamblado (CLR) PG = Guía de plan PK = Restricción PRIMARY KEY R = Regla (estilo antiguo, independiente) RF = Procedimiento de filtro de replicación S = Tabla base del sistema SN = Sinónimo SO = Objeto de secuencia SQ = Cola de servicio TA = Desencadenador DML del ensamblado (CLR) TF = Función con valores de tabla SQL TR = Desencadenador DML de SQL TT = Tipo de tabla U = Tabla (definida por el usuario) UQ = Restricción UNIQUE V = Vista X = Procedimiento almacenado extendido | type_desc | nvarchar(60) | Descripción del tipo de objeto: AGGREGATE_FUNCTION CHECK_CONSTRAINT CLR_SCALAR_FUNCTION CLR_STORED_PROCEDURE CLR_TABLE_VALUED_FUNCTION CLR_TRIGGER DEFAULT_CONSTRAINT EXTENDED_STORED_PROCEDURE FOREIGN_KEY_CONSTRAINT INTERNAL_TABLE PLAN_GUIDE PRIMARY_KEY_CONSTRAINT REPLICATION_FILTER_PROCEDURE RULE SEQUENCE_OBJECT SERVICE_QUEUE SQL_INLINE_TABLE_VALUED_FUNCTION SQL_SCALAR_FUNCTION SQL_STORED_PROCEDURE SQL_TABLE_VALUED_FUNCTION SQL_TRIGGER SYNONYM SYSTEM_TABLE TABLE_TYPE UNIQUE_CONSTRAINT USER_TABLE VIEW | create_date | datetime | Fecha de creación del objeto. | modify_date | datetime | Fecha en que se modificó el objeto por última vez con una instrucción ALTER. Si el objeto es una tabla o una vista, modify_date también cambia cuando se crea o modifica un índice clúster en la tabla o la vista. | is_ms_shipped | bit | Un componente interno de SQL Server crea el objeto. | is_published | bit | El objeto se publica. | is_schema_published | bit | Solo se ha publicado el esquema del objeto. |

Comentarios
Puede aplicar las funciones integradas OBJECT_ID, OBJECT_NAME y OBJECTPROPERTY() a los objetos que se muestran en sys.objects. Hay una versión de esta vista con el mismo esquema, denominada sys.system_objects, que muestra los objetos del sistema. Hay otra vista denominada sys.all_objects que muestra los objetos del sistema y los del usuario. Las tres vistas de catálogo tienen la misma estructura. En esta versión de SQL Server, un índice extendido, por ejemplo un índice XML o espacial, se considera como una tabla interna en sys.objects (type = IT y type_desc = INTERNAL_TABLE). En un índice extendido: name es el nombre interno de la tabla de índice. parent_object_id es el identificador object_id de la tabla base. Las columnas is_ms_shipped, is_published y is_schema_published se establecen en 0.

Permisos
La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario tiene algún permiso. Para obtener más información, vea Configuración de visibilidad de los metadatos.

Ejemplos
A.Devolver todos los objetos modificados en los últimos N díasAntes de ejecutar la consulta siguiente, reemplace <database_name> y <n_days> por valores válidos.
USE <database_name>;
GO
SELECT name AS object_name
,SCHEMA_NAME(schema_id) AS schema_name
,type_desc
,create_date
,modify_date
FROM sys.objects
WHERE modify_date > GETDATE() - <n_days>
ORDER BY modify_date;
GO
B.Devolver los parámetros de un procedimiento almacenado o función determinadosAntes de ejecutar la consulta siguiente, reemplace <database_name> y <schema_name.object_name> por nombres válidos.
USE <database_name>;
GO
SELECT SCHEMA_NAME(schema_id) AS schema_name
,o.name AS object_name
,o.type_desc
,p.parameter_id
,p.name AS parameter_name
,TYPE_NAME(p.user_type_id) AS parameter_type
,p.max_length
,p.precision
,p.scale
,p.is_output
FROM sys.objects AS o
INNER JOIN sys.parameters AS p ON o.object_id = p.object_id
WHERE o.object_id = OBJECT_ID('<schema_name.object_name>')
ORDER BY schema_name, o.object_name, p.parameter_id;
GO
C.Devolver todas las funciones definidas por el usuario de una base de datosAntes de ejecutar la consulta siguiente, reemplace <database_name> por un nombre de base de datos válido.
USE <database_name>;
GO
SELECT name AS function_name
,SCHEMA_NAME(schema_id) AS schema_name
,type_desc
,create_date
,modify_date
FROM sys.objects
WHERE type_desc LIKE '%FUNCTION%';
GO
D.Devolver el propietario de cada objeto de un esquema.Antes de ejecutar la consulta siguiente, reemplace todas las apariciones de <database_name> y <schema_name> por nombres válidos.
USE <database_name>;
GO
SELECT 'OBJECT' AS entity_type
,USER_NAME(OBJECTPROPERTY(object_id, 'OwnerId')) AS owner_name
,name
FROM sys.objects WHERE SCHEMA_NAME(schema_id) = '<schema_name>'
UNION
SELECT 'TYPE' AS entity_type
,USER_NAME(TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId')) AS owner_name
,name
FROM sys.types WHERE SCHEMA_NAME(schema_id) = '<schema_name>'
UNION
SELECT 'XML SCHEMA COLLECTION' AS entity_type
,COALESCE(USER_NAME(xsc.principal_id),USER_NAME(s.principal_id)) AS owner_name
,xsc.name
FROM sys.xml_schema_collections AS xsc JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO

Vea también
|