2012-02-21 36 views
6

Estoy probando el uso de OBJECT_ID y se encontró the following entry en MSDN:¿Qué hace OBJECT_ID en SQL Server?

"Devuelve el número de identificación del objeto de base de datos de un objeto de esquema con ámbito".

¿Qué es el número de identificación de objeto de base de datos y qué objeto de ámbito de esquema es. Parece que estoy más confundido que la inicial.

Respuesta

4

El OBJECT_ID se utiliza para identificar el objeto únicamente en las tablas base del sistema.

Es la clave principal de la tabla base sys.sysschobjs utilizada por la vista de metadatos sys.objects y aparece en muchas otras vistas de metadatos. por ejemplo, sys.partitions. Si no está consultando estas vistas, entonces el object_id no es muy útil, excepto tal vez cuando se utiliza en un control de existencia de objeto como se muestra a continuación.

IF OBJECT_ID('T', 'U') IS NULL 
    /*Table T does not exist or no permissions*/ 

Un objeto de ámbito de esquema es uno que pertenece a un esquema (por ejemplo una tabla, vista, procedimiento almacenado). El artículo de MSDN proporciona un ejemplo de un objeto con ámbito no de esquema en activadores DDL.

Es un error tratar de especificar un esquema al crear estos

CREATE TRIGGER dbo.SomeTrigger /*Will Fail*/ 
ON DATABASE 
FOR DROP_SYNONYM 
AS 
PRINT 'SomeTrigger' 

no objetos de esquema de metadatos de ámbito todavía se almacena en sys.sysschobjs pero no aparece en la vista sys.objects.

Cuestiones relacionadas