Compartir a través de


OBJECTPROPERTY (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de SQL Analytics en Microsoft FabricAlmacén en Microsoft FabricBase de datos SQL en Microsoft Fabric

Devuelve información acerca de los objetos de ámbito de esquema de la base de datos actual. Para obtener una lista de los objetos de ámbito de esquema, vea sys.objects (Transact-SQL). Esta función no se puede utilizar para objetos que no pertenezcan al ámbito de esquema, como notificaciones de eventos y desencadenadores DDL (lenguaje de definición de datos).

Convenciones de sintaxis de Transact-SQL

Sintaxis

OBJECTPROPERTY ( ID , property )

Argumentos

ID

Expresión que representa el identificador del objeto en la base de datos actual. Id. es int y se supone que es un objeto con ámbito de esquema en el contexto de base de datos actual.

property

Expresión que representa la información que se va a devolver para el objeto especificado por id. property puede ser uno de los siguientes valores.

Nota:

A menos que se indique lo contrario, NULL se devuelve cuando la propiedad no es un nombre de propiedad válido, id. no es un identificador de objeto válido, id . es un tipo de objeto no admitido para la propiedad especificada o el autor de la llamada no tiene permiso para ver los metadatos del objeto.

Nombre de propiedad Tipo de objeto Descripción y valores devueltos
CnstIsClustKey Restricción PRIMARY KEY restricción con un índice agrupado.

1 = Verdadero

0 = Falso
CnstIsColumn Restricción CHECKRestricción , DEFAULTo FOREIGN KEY en una sola columna.

1 = Verdadero

0 = Falso
CnstIsDeleteCascade Restricción FOREIGN KEY restricción con la ON DELETE CASCADE opción .

1 = Verdadero

0 = Falso
CnstIsDisabled Restricción Restricción deshabilitada.

1 = Verdadero

0 = Falso
CnstIsNonclustKey Restricción PRIMARY KEY o UNIQUE restricción con un índice no agrupado.

1 = Verdadero

0 = Falso
CnstIsNotRepl Restricción La restricción se define mediante las NOT FOR REPLICATION palabras clave .

1 = Verdadero

0 = Falso
CnstIsNotTrusted Restricción Se habilitó la restricción sin comprobar las filas existentes; Por lo tanto, es posible que la restricción no contenga todas las filas.

1 = Verdadero

0 = Falso
CnstIsUpdateCascade Restricción FOREIGN KEY restricción con la ON UPDATE CASCADE opción .

1 = Verdadero

0 = Falso
ExecIsAfterTrigger Desencadenador AFTER detonante.

1 = Verdadero

0 = Falso
ExecIsAnsiNullsOn Función de Transact-SQL, procedimiento de Transact-SQL, desencadenador de Transact-SQL, vista Configuración de en tiempo de ANSI_NULLS creación.

1 = Verdadero

0 = Falso
ExecIsDeleteTrigger Desencadenador DELETE detonante.

1 = Verdadero

0 = Falso
ExecIsFirstDeleteTrigger Desencadenador El primer desencadenador se desencadena cuando se ejecuta en DELETE la tabla.

1 = Verdadero

0 = Falso
ExecIsFirstInsertTrigger Desencadenador El primer desencadenador se desencadena cuando se ejecuta en INSERT la tabla.

1 = Verdadero

0 = Falso
ExecIsFirstUpdateTrigger Desencadenador El primer desencadenador se desencadena cuando se ejecuta en UPDATE la tabla.

1 = Verdadero

0 = Falso
ExecIsInsertTrigger Desencadenador INSERT detonante.

1 = Verdadero

0 = Falso
ExecIsInsteadOfTrigger Desencadenador INSTEAD OF detonante.

1 = Verdadero

0 = Falso
ExecIsLastDeleteTrigger Desencadenador Último desencadenador se desencadena cuando se ejecuta en DELETE la tabla.

1 = Verdadero

0 = Falso
ExecIsLastInsertTrigger Desencadenador El último desencadenador se desencadena cuando se ejecuta en INSERT la tabla.

1 = Verdadero

0 = Falso
ExecIsLastUpdateTrigger Desencadenador El último desencadenador se desencadena cuando se ejecuta en UPDATE la tabla.

1 = Verdadero

0 = Falso
ExecIsQuotedIdentOn Función de Transact-SQL, procedimiento de Transact-SQL, desencadenador de Transact-SQL, vista Configuración de en tiempo de QUOTED_IDENTIFIER creación.

1 = Verdadero

0 = Falso
ExecIsStartup Procedimiento Procedimiento de inicio.

1 = Verdadero

0 = Falso
ExecIsTriggerDisabled Desencadenador Desencadenador deshabilitado.

1 = Verdadero

0 = Falso
ExecIsTriggerNotForRepl Desencadenador Desencadenador definido como NOT FOR REPLICATION.

1 = Verdadero

0 = Falso
ExecIsUpdateTrigger Desencadenador UPDATE detonante.

1 = Verdadero

0 = Falso
ExecIsWithNativeCompilation Procedimiento de Transact-SQL Se aplica a: SQL Server 2014 (12.x) y versiones posteriores.

El procedimiento se compila de forma nativa.

1 = Verdadero

0 = Falso

Tipo de datos base: int
HasAfterTrigger Tabla o vista La tabla o vista tiene un AFTER desencadenador.

1 = Verdadero

0 = Falso
HasDeleteTrigger Tabla o vista La tabla o vista tiene un DELETE desencadenador.

1 = Verdadero

0 = Falso
HasInsertTrigger Tabla o vista La tabla o vista tiene un INSERT desencadenador.

1 = Verdadero

0 = Falso
HasInsteadOfTrigger Tabla o vista La tabla o vista tiene un INSTEAD OF desencadenador.

1 = Verdadero

0 = Falso
HasUpdateTrigger Tabla o vista La tabla o vista tiene un UPDATE desencadenador.

1 = Verdadero

0 = Falso
IsAnsiNullsOn Función de Transact-SQL, procedimiento de Transact-SQL, tabla, desencadenador de Transact-SQL, vista Especifica que la ANSI NULLS configuración de opción de la tabla es ON. Cuando ANSI NULLS es ON, todas las comparaciones con un NULL valor se evalúan como UNKNOWN. Este valor se aplica a todas las expresiones de la definición de tabla, incluidas las columnas calculadas y las restricciones, mientras la tabla exista.

1 = Verdadero

0 = Falso
IsCheckCnst Cualquier objeto en el ámbito de esquema CHECK restricción.

1 = Verdadero

0 = Falso
IsConstraint Cualquier objeto en el ámbito de esquema Es una restricción de una sola columna CHECK, DEFAULTo FOREIGN KEY en una columna o tabla.

1 = Verdadero

0 = Falso
IsDefault Cualquier objeto en el ámbito de esquema Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

Valor predeterminado enlazado.

1 = Verdadero

0 = Falso
IsDefaultCnst Cualquier objeto en el ámbito de esquema DEFAULT restricción.

1 = Verdadero

0 = Falso
IsDeterministic Función o vista Propiedad de determinismo de la función o vista.

1 = Determinista

0 = No determinista
IsEncrypted Función de Transact-SQL, procedimiento de Transact-SQL, tabla, desencadenador de Transact-SQL, vista Indica que el texto original de la instrucción del módulo se ha convertido a un formato confuso. La salida de la protección no es directamente visible en ninguna de las vistas de catálogo de SQL Server 2005 (9.x). Los usuarios sin acceso a las tablas del sistema o a los archivos de base de datos no pueden recuperar el texto ofuscado. Sin embargo, el texto está disponible para los usuarios que pueden acceder a las tablas del sistema a través de la conexión de diagnóstico para los administradores de bases de datos o acceder directamente a los archivos de base de datos. Además, los usuarios que pueden adjuntar un depurador al proceso del servidor pueden recuperar el procedimiento original de la memoria en tiempo de ejecución.

1 = Cifrada

0 = No cifrado

Tipo de datos base: int
IsExecuted Cualquier objeto en el ámbito de esquema El objeto se puede ejecutar (vista, procedimiento, función o desencadenador).

1 = Verdadero

0 = Falso
IsExtendedProc Cualquier objeto en el ámbito de esquema Procedimiento extendido.

1 = Verdadero

0 = Falso
IsForeignKey Cualquier objeto en el ámbito de esquema FOREIGN KEY restricción.

1 = Verdadero

0 = Falso
IsIndexed Tabla o vista Tabla o vista que tiene un índice.

1 = Verdadero

0 = Falso
IsIndexable Tabla o vista Tabla o vista en la que es posible crear un índice.

1 = Verdadero

0 = Falso
IsInlineFunction Función Función insertada.

1 = Función insertada

0 = Función no insertada
IsMSShipped Cualquier objeto en el ámbito de esquema Objeto creado durante la instalación de SQL Server.

1 = Verdadero

0 = Falso
IsPrimaryKey Cualquier objeto en el ámbito de esquema PRIMARY KEY restricción.

1 = Verdadero

0 = Falso

NULL = No es una función o el identificador de objeto no es válido.
IsProcedure Cualquier objeto en el ámbito de esquema Procedimiento.

1 = Verdadero

0 = Falso
IsQuotedIdentOn función Transact-SQL, procedimiento de Transact-SQL, tabla, desencadenador de Transact-SQL, vista, CHECK restricción, DEFAULT definición Especifica que la configuración del identificador entrecomillado para el objeto es ON. Esto significa que los identificadores están delimitados por comillas dobles en todas las expresiones que participan en la definición del objeto.

1 = ON

0 = OFF
IsQueue Cualquier objeto en el ámbito de esquema Cola de Service Broker

1 = Verdadero

0 = Falso
IsReplProc Cualquier objeto en el ámbito de esquema Procedimiento de replicación.

1 = Verdadero

0 = Falso
IsRule Cualquier objeto en el ámbito de esquema Regla enlazada.

1 = Verdadero

0 = Falso
IsScalarFunction Función Función escalar.

1 = Función escalar

0 = Función no escalar
IsSchemaBound Función o vista Función o vista enlazada al esquema creada mediante SCHEMABINDING.

1 = Enlazada al esquema

0 = No enlazada al esquema.
IsSystemTable Tabla Tabla del sistema.

1 = Verdadero

0 = Falso
IsSystemVerified Object SQL Server puede comprobar las propiedades de determinismo y precisión del objeto.

1 = Verdadero

0 = Falso
IsTable Tabla Tabla.

1 = Verdadero

0 = Falso
IsTableFunction Función Función con valores de tabla.

1 = Función con valores de tabla

0 = Función con valores no de tabla.
IsTrigger Cualquier objeto en el ámbito de esquema Desencadenador.

1 = Verdadero

0 = Falso
IsUniqueCnst Cualquier objeto en el ámbito de esquema UNIQUE restricción.

1 = Verdadero

0 = Falso
IsUserTable Tabla Tabla definida por el usuario.

1 = Verdadero

0 = Falso
IsView Ver Vista.

1 = Verdadero

0 = Falso
OwnerId Cualquier objeto en el ámbito de esquema Propietario del objeto.

Nota: El propietario del esquema no es necesariamente el propietario del objeto. Por ejemplo, los objetos secundarios (aquellos en los que parent_object_id no son NULL) siempre devolverán el mismo identificador de propietario que el elemento primario.

Non-null = El identificador de usuario de la base de datos del propietario del objeto.
SchemaId Cualquier objeto en el ámbito de esquema Id. de esquema del esquema al que pertenece el objeto.
TableDeleteTrigger Tabla La tabla tiene un DELETE desencadenador.

>1 = Identificador del primer desencadenador con el tipo especificado.
TableDeleteTriggerCount Tabla La tabla tiene el número especificado de DELETE desencadenadores.

>0 = Número de DELETE desencadenadores.
TableFullTextMergeStatus Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

Indica si una tabla que tiene un índice de texto completo se está combinando actualmente.

0 = La tabla no tiene un índice de texto completo o el índice de texto completo no se está combinando.

1 = El índice de texto completo se está combinando.
TableFullTextBackgroundUpdateIndexOn Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

La tabla tiene habilitada la opción de actualización de índices de texto completo en segundo plano (seguimiento de cambios automáticos).

1 = VERDADERO

0 = False
TableFulltextCatalogId Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

Identificador del catálogo de texto completo en el que residen los datos de índice de texto completo para la tabla.

Distinto de cero = Identificador del catálogo de texto completo, asociado al índice único que identifica las filas en una tabla indizada de texto completo.

0 = La tabla no tiene un índice de texto completo.
TableFulltextChangeTrackingOn Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

La tabla tiene habilitado el seguimiento de cambios de texto completo.

1 = VERDADERO

0 = False
TableFulltextDocsProcessed Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

Número de filas procesadas desde el comienzo de la indización de texto completo. En una tabla que se indiza para búsquedas en texto completo, todas las columnas de una fila se consideran como parte de un documento que se va a indizar.

0 = No se ha completado ningún rastreo activo ni ninguna indización de texto completo.

> 0 = Uno de los siguientes (A o B): A) El número de documentos procesados por operaciones de inserción o actualización desde el inicio del rellenado de seguimiento de cambios completo, incremental o manual. B) El número de filas procesadas por operaciones de inserción o actualización desde que se habilitó el seguimiento de cambios con el rellenado de índices de actualización en segundo plano, se cambió el esquema de índice de texto completo, se recompiló el catálogo de texto completo o la instancia de SQL Server reiniciada.

NULL = La tabla no tiene un índice de texto completo.

Esta propiedad no supervisa ni cuenta las filas eliminadas.
TableFulltextFailCount Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

Número de filas no indizadas por Búsqueda de texto completo.

0 = La población completada.

> 0 = Uno de los siguientes (A o B): A) El número de documentos que no se han indizado desde el inicio del llenado de seguimiento de cambios de actualización completa, incremental o manual. B) En el seguimiento de cambios con actualización de índices en segundo plano, el número de filas no indizadas desde el comienzo del rellenado o desde su reinicio. Esto puede deberse a un cambio del esquema, a la regeneración del catálogo, al reinicio del servidor, etc.

NULL = La tabla no tiene un índice de texto completo.
TableFulltextItemCount Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

Número de filas para las que se crearon índices de texto completo correctamente.
TableFulltextKeyColumn Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

Identificador de la columna asociada al índice de columna único que participa en la definición de índice de texto completo.

0 = La tabla no tiene un índice de texto completo.
TableFulltextPendingChanges Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

Número de entradas de seguimiento de cambios pendientes de procesamiento.

0 = El seguimiento de cambios no está habilitado.

NULL = La tabla no tiene un índice de texto completo.
TableFulltextPopulateStatus Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

0 = Inactiva

1 = Rellenado completo en curso.

2 = Rellenado incremental en curso.

3 = Propagación de cambios de seguimiento en curso.

4 = Actualización de índices en segundo plano en curso, como el seguimiento de cambios automáticos.

5 = Indización de texto completo acelerada o pausada.
TableHasActiveFulltextIndex Tabla Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

La tabla tiene un índice de texto completo activo.

1 = Verdadero

0 = Falso
TableHasCheckCnst Tabla La tabla tiene una CHECK restricción .

1 = Verdadero

0 = Falso
TableHasClustIndex Tabla La tabla tiene un índice clúster.

1 = Verdadero

0 = Falso
TableHasDefaultCnst Tabla La tabla tiene una DEFAULT restricción .

1 = Verdadero

0 = Falso
TableHasDeleteTrigger Tabla La tabla tiene un DELETE desencadenador.

1 = Verdadero

0 = Falso
TableHasForeignKey Tabla La tabla tiene una FOREIGN KEY restricción .

1 = Verdadero

0 = Falso
TableHasForeignRef Tabla Una restricción hace referencia a la FOREIGN KEY tabla.

1 = Verdadero

0 = Falso
TableHasIdentity Tabla La tabla tiene una columna de identidad.

1 = Verdadero

0 = Falso
TableHasIndex Tabla La tabla tiene un índice de cualquier tipo.

1 = Verdadero

0 = Falso
TableHasInsertTrigger Tabla El objeto tiene un INSERT desencadenador.

1 = Verdadero

0 = Falso
TableHasNonclustIndex Tabla La tabla tiene un índice no clúster.

1 = Verdadero

0 = Falso
TableHasPrimaryKey Tabla La tabla tiene una clave principal.

1 = Verdadero

0 = Falso
TableHasRowGuidCol Tabla La tabla tiene un ROWGUIDCOL para una columna uniqueidentifier .

1 = Verdadero

0 = Falso
TableHasTextImage Tabla La tabla tiene una columna text, ntext o image.

1 = Verdadero

0 = Falso
TableHasTimestamp Tabla La tabla tiene una columna timestamp.

1 = Verdadero

0 = Falso
TableHasUniqueCnst Tabla La tabla tiene una UNIQUE restricción .

1 = Verdadero

0 = Falso
TableHasUpdateTrigger Tabla El objeto tiene un UPDATE desencadenador.

1 = Verdadero

0 = Falso
TableHasVarDecimalStorageFormat Tabla La tabla está habilitada para el formato de almacenamiento vardecimal.

1 = Verdadero

0 = Falso
TableInsertTrigger Tabla Table tiene un INSERT desencadenador.

>1 = Identificador del primer desencadenador con el tipo especificado.
TableInsertTriggerCount Tabla La tabla tiene el número especificado de INSERT desencadenadores.

>0 = Número de INSERT desencadenadores.
TableIsFake Tabla La tabla no es real. Motor de base de datos de SQL Server la materializa internamente a petición.

1 = Verdadero

0 = Falso
TableIsLockedOnBulkLoad Tabla La tabla está bloqueada debido a un bcp o BULK INSERT trabajo.

1 = Verdadero

0 = Falso
TableIsMemoryOptimized Tabla Se aplica a: SQL Server 2014 (12.x) y versiones posteriores.

La tabla tiene optimización para memoria

1 = Verdadero

0 = Falso

Tipo de datos base: int

Para obtener más información, consulte In-Memory escenarios de uso y información general de OLTP.
TableIsPinned Tabla La tabla se ancla para que se mantenga en la memoria caché de datos.

0 = Falso

Esta característica no se admite en SQL Server 2005 (9.x) ni en versiones posteriores.
TableTextInRowLimit Tabla Número máximo de bytes permitidos para text in row.

0 si no se ha establecido la opción text in row.
TableUpdateTrigger Tabla Table tiene un UPDATE desencadenador.

> 1 = Identificador del primer desencadenador con el tipo especificado.
TableUpdateTriggerCount Tabla La tabla tiene el número especificado de UPDATE desencadenadores.

> 0 = Número de UPDATE desencadenadores.
TableHasColumnSet Tabla La tabla tiene un conjunto de columnas.

0 = Falso

1 = Verdadero

Para obtener más información, consulte Uso de conjuntos de columnas.
TableTemporalType Tabla Se aplica a: SQL Server 2016 (13.x) y versiones posteriores.

Especifica el tipo de tabla.

0 = tabla no temporal

1 = tabla de historial para la tabla con control de versiones del sistema

2 = tabla temporal con control de versiones del sistema

Tipos de retorno

int

Excepciones

Devuelve NULL el error o si un autor de la llamada no tiene permiso para ver el objeto.

Permisos

Un usuario solo puede ver los metadatos de elementos protegibles que posea o para los que se le haya concedido permiso. Esto significa que las funciones integradas que emiten metadatos, como OBJECTPROPERTY return NULL , si el usuario no tiene ningún permiso en el objeto. Para obtener más información, consulte Configuración de visibilidad de metadatos.

Comentarios

El Motor de base de datos da por hecho que object_id se encuentra en el contexto de la base de datos actual. Una consulta que hace referencia a un object_id en otra base de datos devuelve NULL o resultados incorrectos. Por ejemplo, en la consulta siguiente, el contexto de base de datos actual es la master base de datos. El motor de base de datos intenta devolver el valor de propiedad del object_id especificado en esa base de datos en lugar de la base de datos especificada en la consulta. La consulta devuelve resultados incorrectos porque la vista vEmployee no está en la master base de datos.

USE master;
GO
SELECT OBJECTPROPERTY(OBJECT_ID(N'AdventureWorks2022.HumanResources.vEmployee'), 'IsView');
GO

OBJECTPROPERTY(view_id, 'IsIndexable') puede consumir recursos informáticos significativos porque la evaluación de la propiedad IsIndexable requiere el análisis de la definición de vista, la normalización y la optimización parcial. Aunque la propiedad IsIndexable identifica tablas o vistas que se pueden indizar, es posible que se produzca un error en la creación real del índice si no se cumplen ciertos requisitos de clave de índice. Para más información, consulte CREATE INDEX (Transact-SQL).

OBJECTPROPERTY(table_id, 'TableHasActiveFulltextIndex') devuelve un valor de 1 (true) cuando se agrega al menos una columna de una tabla para la indexación. El índice de texto completo se activa para su llenado en el momento en que se agrega la primera columna para la indización.

Cuando se crea una tabla, la QUOTED IDENTIFIER opción siempre se almacena como ON en los metadatos de la tabla, incluso si la opción se establece OFF en cuando se crea la tabla. Por lo tanto, OBJECTPROPERTY(table_id, 'IsQuotedIdentOn') siempre devuelve un valor de 1 (true).

Ejemplos

A. Comprobación de que un objeto es una tabla

En el ejemplo siguiente se comprueba si UnitMeasure es una tabla de la base de datos AdventureWorks2025.

USE AdventureWorks2022;
GO
IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') = 1
   PRINT 'UnitMeasure is a table.'
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') = 0
   PRINT 'UnitMeasure is not a table.'
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') IS NULL
   PRINT 'ERROR: UnitMeasure is not a valid object.';
GO

B. Compruebe que una función definida por el usuario con valores escalares sea determinista

En el siguiente ejemplo se comprueba si es determinista la función escalar definida por el usuario, ufnGetProductDealerPrice, que devuelve un valor money.

USE AdventureWorks2022;
GO
SELECT OBJECTPROPERTY(OBJECT_ID('dbo.ufnGetProductDealerPrice'), 'IsDeterministic');
GO

El conjunto de resultados muestra que ufnGetProductDealerPrice no es una función determinista.

-----
0

C: Buscar las tablas que pertenecen a un esquema específico

En el ejemplo siguiente se devuelven todas las tablas del dbo esquema.

-- Uses AdventureWorks

SELECT schema_name(o.schema_id), o.name, o.object_id, o.type_desc
FROM sys.objects AS o
WHERE OBJECTPROPERTY(o.object_id, N'SchemaId') = SCHEMA_ID(N'dbo')
ORDER BY o.type_desc, o.name;
GO

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

D. Comprobar si un objeto es una tabla

En el ejemplo siguiente se comprueba si dbo.DimReseller es una tabla de la base de datos AdventureWorksPDW2022.

-- Uses AdventureWorks

IF OBJECTPROPERTY (OBJECT_ID(N'dbo.DimReseller'),'ISTABLE') = 1
   SELECT 'DimReseller is a table.'
ELSE
   SELECT 'DimReseller is not a table.';
GO