Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

OBJECTPROPERTY (Transact-SQL)

Actualizado: 12 de diciembre de 2006

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).

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL


OBJECTPROPERTY ( id , property ) 

id

Es una expresión que representa el Id. del objeto de la base de datos actual. id es de tipo int y se supone que es un objeto del ámbito de esquema del contexto de la base de datos actual.

property

Es una expresión que representa la información que se devuelve para el objeto especificado en id. property puede tener uno de los valores siguientes.

ms176105.note(es-es,SQL.90).gifNota:
A menos que se especifique lo contrario, se devuelve NULL si property no es un nombre de propiedad válido, id no es un Id. de objeto válido, id es un tipo de objeto incompatible con el valor especificado en property o el autor de la llamada no tiene permiso para ver los metadatos del objeto.

Nombre de la propiedad Tipo de objeto Descripción y valores devueltos

CnstIsClustKey

Restricción

Restricción PRIMARY KEY con un índice agrupado.

1 = Verdadero

0 = False

CnstIsColumn

Restricción

Restricción CHECK, DEFAULT o FOREIGN KEY en una única columna.

1 = True

0 = False

CnstIsDeleteCascade

Restricción

Restricción FOREIGN KEY con la opción ON DELETE CASCADE.

1 = True

0 = False

CnstIsDisabled

Restricción

Restricción deshabilitada.

1 = True

0 = False

CnstIsNonclustKey

Restricción

Restricción PRIMARY KEY o UNIQUE con un índice no agrupado.

1 = Verdadero

0 = False

CnstIsNotRepl

Restricción

La restricción se ha definido con las palabras clave NOT FOR REPLICATION.

1 = Verdadero

0 = False

CnstIsNotTrusted

Restricción

La restricción se ha habilitado sin comprobar las filas existentes, por lo que es posible que no se mantenga para todas las filas.

1 = True

0 = False

CnstIsUpdateCascade

Restricción

Restricción FOREIGN KEY con la opción ON UPDATE CASCADE.

1 = Verdadero

0 = False

ExecIsAfterTrigger

Desencadenador

Desencadenador AFTER.

1 = Verdadero

0 = False

ExecIsAnsiNullsOn

Función de Transact-SQL, procedimiento de Transact-SQL, desencadenador de Transact-SQL, vista

Valor de ANSI_NULLS en el momento de su creación.

1 = Verdadero

0 = False

ExecIsDeleteTrigger

Desencadenador

Desencadenador DELETE.

1 = Verdadero

0 = False

ExecIsFirstDeleteTrigger

Desencadenador

Primer desencadenador que se activa cuando se ejecuta DELETE en la tabla.

1 = Verdadero

0 = False

ExecIsFirstInsertTrigger

Desencadenador

Primer desencadenador que se activa cuando se ejecuta INSERT en la tabla.

1 = Verdadero

0 = False

ExecIsFirstUpdateTrigger

Desencadenador

Primer desencadenador que se activa cuando se ejecuta UPDATE en la tabla.

1 = Verdadero

0 = False

ExecIsInsertTrigger

Desencadenador

Desencadenador INSERT.

1 = Verdadero

0 = False

ExecIsInsteadOfTrigger

Desencadenador

Desencadenador INSTEAD OF.

1 = Verdadero

0 = False

ExecIsLastDeleteTrigger

Desencadenador

Último desencadenador que se activa cuando se ejecuta DELETE en la tabla.

1 = Verdadero

0 = False

ExecIsLastInsertTrigger

Desencadenador

Último desencadenador que se activa cuando se ejecuta INSERT en la tabla.

1 = Verdadero

0 = False

ExecIsLastUpdateTrigger

Desencadenador

Último desencadenador que se activa cuando se ejecuta UPDATE en la tabla.

1 = Verdadero

0 = False

ExecIsQuotedIdentOn

Función de Transact-SQL, procedimiento de Transact-SQL, desencadenador de Transact-SQL, vista

Valor de QUOTED_IDENTIFIER en el momento de su creación.

1 = Verdadero

0 = False

ExecIsStartup

Procedimiento

Procedimiento de inicio.

1 = Verdadero

0 = False

ExecIsTriggerDisabled

Desencadenador

Desencadenador deshabilitado.

1 = True

0 = False

ExecIsTriggerNotForRepl

Desencadenador

Desencadenador definido como NOT FOR REPLICATION.

1 = True

0 = False

ExecIsUpdateTrigger

Desencadenador

Desencadenador UPDATE.

1 = Verdadero

0 = False

HasAfterTrigger

Tabla, vista

La tabla o la vista tiene un desencadenador AFTER.

1 = Verdadero

0 = False

HasDeleteTrigger

Tabla, vista

La tabla o la vista tiene un desencadenador DELETE.

1 = True

0 = False

HasInsertTrigger

Tabla, vista

La tabla o la vista tiene un desencadenador INSERT.

1 = True

0 = False

HasInsteadOfTrigger

Tabla, vista

La tabla o la vista tiene un desencadenador INSTEAD OF.

1 = True

0 = False

HasUpdateTrigger

Tabla, vista

La tabla o la vista tiene un desencadenador UPDATE.

1 = Verdadero

0 = False

IsAnsiNullsOn

Función de Transact-SQL, procedimiento de Transact-SQL, tabla, desencadenador de Transact-SQL, vista

Especifica que el valor de la opción ANSI NULLS de la tabla es ON. Esto significa que todas las comparaciones con un valor NULL se evalúan como UNKNOWN. Este valor se aplica a todas las expresiones de la definición de la tabla, incluidas las columnas calculadas y las restricciones, mientras la tabla exista.

1 = Verdadero

0 = False

IsCheckCnst

Cualquier objeto en el ámbito de esquema

Restricción CHECK.

1 = True

0 = False

IsConstraint

Cualquier objeto en el ámbito de esquema

Es una restricción CHECK, DEFAULT o FOREIGN KEY de columna única en una columna o tabla.

1 = Verdadero

0 = False

IsDefault

Cualquier objeto en el ámbito de esquema

Valor predeterminado enlazado.

1 = Verdadero

0 = False

IsDefaultCnst

Cualquier objeto en el ámbito de esquema

Restricción DEFAULT.

1 = Verdadero

0 = False

IsDeterministic

Función, vista

Propiedad de determinismo de la función o vista.

1 = Determinista

0 = No determinista

IsExecuted

Cualquier objeto en el ámbito de esquema

El objeto se puede ejecutar (vista, procedimiento, función o desencadenador).

1 = Verdadero

0 = False

IsExtendedProc

Cualquier objeto en el ámbito de esquema

Procedimiento extendido.

1 = Verdadero

0 = False

IsForeignKey

Cualquier objeto en el ámbito de esquema

Restricción FOREIGN KEY.

1 = Verdadero

0 = False

IsIndexed

Tabla, vista

Tabla o vista que tiene un índice.

1 = Verdadero

0 = False

IsIndexable

Tabla, vista

Tabla o vista en la que es posible crear un índice.

1 = Verdadero

0 = False

IsInlineFunction

Función

Función en línea.

1 = Función en línea

0 = No es una función en línea

IsMSShipped

Cualquier objeto en el ámbito de esquema

Objeto creado durante la instalación de SQL Server 2005.

1 = Verdadero

0 = False

IsPrimaryKey

Cualquier objeto en el ámbito de esquema

Restricción PRIMARY KEY.

1 = Verdadero

0 = False

NULL = No es una función o el Id. de objeto no es válido.

IsProcedure

Cualquier objeto en el ámbito de esquema

Procedimiento.

1 = Verdadero

0 = False

IsQuotedIdentOn

Función de Transact-SQL, procedimiento de Transact-SQL, tabla, desencadenador de Transact-SQL, vista, restricción CHECK, definición DEFAULT

Especifica que el valor del identificador entre comillas 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 = True

0 = False

IsReplProc

Cualquier objeto en el ámbito de esquema

Procedimiento de réplica.

1 = True

0 = False

IsRule

Cualquier objeto en el ámbito de esquema

Regla enlazada.

1 = Verdadero

0 = False

IsScalarFunction

Función

Función con valores escalares.

1 = Función con valores escalares

0 = Función con valores no escalares

IsSchemaBound

Función, 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 = False

IsTable

Tabla

Tabla.

1 = Verdadero

0 = False

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 = False

IsUniqueCnst

Cualquier objeto en el ámbito de esquema

Restricción UNIQUE.

1 = Verdadero

0 = False

IsUserTable

Tabla

Tabla definida por el usuario.

1 = Verdadero

0 = False

IsView

Vista

Vista.

1 = Verdadero

0 = False

OwnerId

Cualquier objeto en el ámbito de esquema

Propietario del objeto.

El propietario del esquema no es necesariamente el propietario del objeto. Por ejemplo, los objetos secundarios (aquéllos en los que parent_object_id no es NULL) siempre devolverán el mismo Id. de propietario que el primario.
ms176105.note(es-es,SQL.90).gifNota:

Distinto de NULL = Id. de usuario de base de datos que corresponde al propietario del objeto.

TableDeleteTrigger

Tabla

La tabla tiene un desencadenador DELETE.

>1 = Id. del primer desencadenador con el tipo especificado.

TableDeleteTriggerCount

Tabla

La tabla tiene el número especificado de desencadenadores DELETE.

>0 = Número de desencadenadores DELETE.

TableFullTextBackgroundUpdateIndexOn

Tabla

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

1 = Verdadero

0 = FALSE

TableFulltextCatalogId

Tabla

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

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

0 = La tabla no tiene un índice de texto.

TableFulltextChangeTrackingOn

Tabla

La tabla tiene habilitado el seguimiento de cambios de texto.

1 = Verdadero

0 = FALSE

TableFulltextDocsProcessed

Tabla

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

0 = No se realiza ningún rastreo activo ni la indización de texto.

> 0 = Uno de los valores siguientes:

  • El número de documentos procesados desde el comienzo del llenado de seguimiento de cambios completo, incremental o manual.
  • El número de filas procesadas desde que se habilitó el seguimiento de cambios con llenado de índices actualizados en segundo plano, desde que se cambió el esquema de índices de texto, desde que se regeneró el catálogo de texto o desde que se reinició la instancia de SQL Server, etc.

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

TableFulltextFailCount

Tabla

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

0 = El llenado ha finalizado.

> 0 = Uno de los valores siguientes:

  • El número de documentos no indizados desde el comienzo del llenado de seguimiento de cambios de actualización completa, incremental o manual.
  • Para el seguimiento de cambios con actualización de índices en segundo plano, el número de filas no indizadas desde el comienzo del llenado o desde su reinicio. Esto puede deberse, por ejemplo, a un cambio del esquema, a la regeneración del catálogo o al reinicio del servidor.

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

TableFulltextItemCount

Tabla

Número de filas para las que se crearon índices de texto correctamente.

TableFulltextKeyColumn

Tabla

Id. de la columna asociada al índice único de una sola columna que participa en la definición del índice de texto.

0 = La tabla no tiene un índice de texto.

TableFulltextPendingChanges

Tabla

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.

TableFulltextPopulateStatus

Tabla

0 = Inactiva.

1 = Llenado completo en curso.

2 = Llenado 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 acelerada o pausada.

TableHasActiveFulltextIndex

Tabla

La tabla tiene un índice de texto activo.

1 = Verdadero

0 = False

TableHasCheckCnst

Tabla

La tabla tiene una restricción CHECK.

1 = Verdadero

0 = False

TableHasClustIndex

Tabla

La tabla tiene un índice agrupado.

1 = Verdadero

0 = False

TableHasDefaultCnst

Tabla

La tabla tiene una restricción DEFAULT.

1 = Verdadero

0 = False

TableHasDeleteTrigger

Tabla

La tabla tiene un desencadenador DELETE.

1 = Verdadero

0 = False

TableHasForeignKey

Tabla

La tabla tiene una restricción FOREIGN KEY.

1 = Verdadero

0 = False

TableHasForeignRef

Tabla

Una restricción FOREIGN KEY hace referencia a la tabla.

1 = Verdadero

0 = False

TableHasIdentity

Tabla

La tabla tiene una columna de identidad.

1 = Verdadero

0 = False

TableHasIndex

Tabla

La tabla tiene un índice de cualquier tipo.

1 = True

0 = False

TableHasInsertTrigger

Tabla

El objeto tiene un desencadenador INSERT.

1 = Verdadero

0 = Falso

TableHasNonclustIndex

Tabla

La tabla tiene un índice no agrupado.

1 = True

0 = False

TableHasPrimaryKey

Tabla

La tabla tiene una clave principal.

1 = True

0 = False

TableHasRowGuidCol

Tabla

La tabla tiene una propiedad ROWGUIDCOL para una columna de tipo uniqueidentifier.

1 = Verdadero

0 = False

TableHasTextImage

Tabla

La tabla tiene una columna de tipo text, ntext o image.

1 = Verdadero

0 = False

TableHasTimestamp

Tabla

La tabla tiene una columna de tipo timestamp.

1 = Verdadero

0 = False

TableHasUniqueCnst

Tabla

La tabla tiene una restricción UNIQUE.

1 = Verdadero

0 = False

TableHasUpdateTrigger

Tabla

El objeto tiene un desencadenador UPDATE.

1 = Verdadero

0 = False

TableHasVarDecimalStorageFormat

Tabla

La tabla está habilitada para el formato de almacenamiento vardecimal.

1 = Verdadero

0 = Falso

Para obtener información sobre el formato de almacenamiento vardecimal, vea Almacenar datos decimales como longitud variable.

TableInsertTrigger

Tabla

La tabla tiene un desencadenador INSERT.

>1 = Id. del primer desencadenador con el tipo especificado.

TableInsertTriggerCount

Tabla

La tabla tiene el número especificado de desencadenadores INSERT.

>0 = Número de desencadenadores INSERT.

TableIsFake

Tabla

La tabla no es real. Se materializa internamente a petición del SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005).

1 = Verdadero

0 = Falso

TableIsLockedOnBulkLoad

Tabla

La tabla está bloqueada debido a una operación con bcp o BULK INSERT.

1 = True

0 = False

TableIsPinned

Tabla

La tabla se fija para que se mantenga en la caché de datos.

0 = False

Esta característica no se admite en SQL Server 2005.

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

La tabla tiene un desencadenador UPDATE.

>1 = Id. del primer desencadenador con el tipo especificado.

TableUpdateTriggerCount

Tabla

La tabla tiene el número especificado de desencadenadores UPDATE.

> 0 = Número de desencadenadores UPDATE.

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

En SQL Server 2005, un usuario sólo puede ver los metadatos de asegurables que posea o para los que se le haya concedido permiso. Esto significa que las funciones integradas de emisión de metadatos, como OBJECTPROPERTY, pueden devolver NULL si el usuario no tiene ningún permiso para el objeto. Para obtener más información, vea Configuración de visibilidad de los metadatos y Solucionar problemas de visibilidad de los metadatos.

Database Engine (Motor de base de datos) presupone que object_id se encuentra en el contexto de la base de datos actual. Una consulta que hace referencia a un parámetro object_id de otra base de datos devuelve NULL o resultados incorrectos. Por ejemplo, en la consulta siguiente, el contexto de la base de datos actual es la base de datos master. Database Engine (Motor de base de datos) intentará devolver el valor de propiedad correspondiente al 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 se encuentra en la base de datos master.

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

OBJECTPROPERTY(view_id, 'IsIndexable') puede consumir importantes recursos del equipo porque la evaluación de la propiedad IsIndexable requiere el análisis de la definición de la vista, la normalización y la optimización parcial. Aunque la propiedad IsIndexable identifica tablas o vistas que se pueden indizar, todavía pueden producirse errores en la creación del índice propiamente dicha si no se cumplen algunos requisitos clave de los índices. Para obtener más información, vea CREATE INDEX (Transact-SQL).

OBJECTPROPERTY(table_id, 'TableHasActiveFulltextIndex') devolverá el valor 1 (verdadero) si se agrega al menos una columna de una tabla para su indización. El índice de texto 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 opción QUOTED IDENTIFIER siempre se almacena como ON en los metadatos de la tabla, aunque se haya establecido en OFF al crear la tabla. Por tanto, OBJECTPROPERTY(table_id, 'IsQuotedIdentOn') siempre devolverá el valor 1 (verdadero).

A. Comprobar si un objeto es una tabla

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

USE AdventureWorks;
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. Comprobar si una función con valores escalares definida por el usuario es determinista

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

USE AdventureWorks;
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 los objetos que pertenecen a un esquema específico

En el siguiente ejemplo se utiliza la propiedad SchemaId para devolver todos los objetos que pertenecen al esquema Production.

USE AdventureWorks;
GO
SELECT name, object_id, type_desc
FROM sys.objects 
WHERE OBJECTPROPERTY(object_id, N'SchemaId') = SCHEMA_ID(N'Production')
ORDER BY type_desc, name;
GO

Versión Historial

12 de diciembre de 2006

Contenido nuevo:
  • Se ha agregado la propiedad TableHasVarDecimalStorageFormat, disponible en el Service Pack 2.

17 de julio de 2006

Contenido nuevo:
  • Se ha agregado la sección Excepciones.

5 de diciembre de 2005

Contenido modificado:
  • Se ha corregido la definición de las propiedades IsTableFunction e IsScalarFunction.
  • Se ha modificado el ejemplo C.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft