Compartir a través de


OBJECTPROPERTY (Transact-SQL)

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

Sintaxis

OBJECTPROPERTY ( id , property ) 

Argumentos

  • id
    Es una expresión que representa el identificador del objeto en la base de datos actual. id es de tipo int y se considera que se trata de un objeto de ámbito de esquema en el contexto de la base de datos actual.

  • property
    Es una expresión que representa la información que se va a devolver para el objeto especificado por id. property puede tener uno de los siguientes valores.

    [!NOTA]

    A menos que se especifique lo contrario, se devuelve NULL si property no es un nombre de propiedad válido, id no es un identificador 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 clúster.

    1 = True

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

    0 = Falso

    CnstIsDisabled

    Restricción

    Restricción deshabilitada.

    1 = Verdadero

    0 = Falso

    CnstIsNonclustKey

    Restricción

    Restricción PRIMARY KEY o UNIQUE con un índice no clúster.

    1 = True

    0 = False

    CnstIsNotRepl

    Restricción

    La restricción se define utilizando las palabras clave NOT FOR REPLICATION.

    1 = True

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

    ExecIsAfterTrigger

    Desencadenador

    Desencadenador AFTER.

    1 = Verdadero

    0 = Falso

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

    ExecIsDeleteTrigger

    Desencadenador

    Desencadenador DELETE.

    1 = Verdadero

    0 = Falso

    ExecIsFirstDeleteTrigger

    Desencadenador

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

    1 = True

    0 = False

    ExecIsFirstInsertTrigger

    Desencadenador

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

    1 = True

    0 = False

    ExecIsFirstUpdateTrigger

    Desencadenador

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

    1 = Verdadero

    0 = Falso

    ExecIsInsertTrigger

    Desencadenador

    Desencadenador INSERT.

    1 = Verdadero

    0 = Falso

    ExecIsInsteadOfTrigger

    Desencadenador

    Desencadenador INSTEAD OF.

    1 = Verdadero

    0 = Falso

    ExecIsLastDeleteTrigger

    Desencadenador

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

    1 = True

    0 = False

    ExecIsLastInsertTrigger

    Desencadenador

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

    1 = True

    0 = False

    ExecIsLastUpdateTrigger

    Desencadenador

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

    1 = True

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

    Desencadenador UPDATE.

    1 = Verdadero

    0 = Falso

    HasAfterTrigger

    Tabla, vista

    La tabla o la vista tiene un desencadenador AFTER.

    1 = True

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

    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 tabla, incluidas las columnas calculadas y las restricciones, mientras la tabla exista.

    1 = True

    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 una tabla.

    1 = Verdadero

    0 = Falso

    IsDefault

    Cualquier objeto en el ámbito de esquema

    Valor predeterminado enlazado.

    1 = Verdadero

    0 = Falso

    IsDefaultCnst

    Cualquier objeto en el ámbito de esquema

    Restricción DEFAULT.

    1 = True

    0 = False

    IsDeterministic

    Función, 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 protegido. La salida de la protección no es directamente visible en ninguna de las vistas de catálogo de SQL Server 2005. Los usuarios que no disponen de acceso a las tablas del sistema o a los archivos de base de datos no pueden recuperar el texto protegido. Sin embargo, está disponible para los usuarios que puedan obtener acceso a las tablas del sistema a través del puerto DAC o 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 = Cifrado

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

    0 = False

    IsExtendedProc

    Cualquier objeto en el ámbito de esquema

    Procedimiento extendido.

    1 = True

    0 = False

    IsForeignKey

    Cualquier objeto en el ámbito de esquema

    Restricción FOREIGN KEY.

    1 = Verdadero

    0 = Falso

    IsIndexed

    Tabla, vista

    Tabla o vista que tiene un índice.

    1 = Verdadero

    0 = Falso

    IsIndexable

    Tabla, vista

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

    1 = Verdadero

    0 = False

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

    0 = False

    IsPrimaryKey

    Cualquier objeto en el ámbito de esquema

    Restricción PRIMARY KEY.

    1 = True

    0 = False

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

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

    0 = False

    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, 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

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

    0 = False

    IsUniqueCnst

    Cualquier objeto en el ámbito de esquema

    Restricción UNIQUE.

    1 = Verdadero

    0 = Falso

    IsUserTable

    Tabla

    Tabla definida por el usuario.

    1 = Verdadero

    0 = Falso

    IsView

    Vista

    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 es NULL) siempre devolverán el mismo identificador de propietario que el primario.

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

    TableDeleteTrigger

    Tabla

    La tabla tiene un desencadenador DELETE.

    >1 = Identificador 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.

    TableFullTextMergeStatus

    Tabla

    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

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

    1 = TRUE

    0 = FALSE

    TableFulltextCatalogId

    Tabla

    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

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

    1 = TRUE

    0 = FALSE

    TableFulltextDocsProcessed

    Tabla

    Número de filas procesadas desde el comienzo de la indización de texto completo. En una tabla que se esté indizando para búsquedas de texto completo, todas las columnas de una fila se consideran 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:

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

    • 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 del índice de actualización en segundo plano, la modificación del esquema de índice de texto completo, la regeneración del catálogo de texto completo o el reinicio de la instancia de SQL Server, etc.

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

    [!NOTA]

    Esta propiedad no supervisa ni cuenta las filas eliminadas.

    TableFulltextFailCount

    Tabla

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

    0 = El rellenado se ha completado.

    > 0 = Uno de los siguientes:

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

    • Para el seguimiento de cambios con el índice de actualización en segundo plano, el número de filas que no se han indizado desde el inicio del llenado o el reinicio del llenado. 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

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

    TableFulltextKeyColumn

    Tabla

    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

    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

    0 = Inactiva.

    1 = Rellenado completo en curso.

    2 = Rellenado incremental en curso.

    3 = Propagación de los cambios de los que se ha realizado 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

    La tabla tiene un índice de texto completo activo.

    1 = Verdadero

    0 = Falso

    TableHasCheckCnst

    Tabla

    La tabla tiene una restricción CHECK.

    1 = Verdadero

    0 = Falso

    TableHasClustIndex

    Tabla

    La tabla tiene un índice clúster.

    1 = Verdadero

    0 = Falso

    TableHasDefaultCnst

    Tabla

    La tabla tiene una restricción DEFAULT.

    1 = Verdadero

    0 = Falso

    TableHasDeleteTrigger

    Tabla

    La tabla tiene un desencadenador DELETE.

    1 = Verdadero

    0 = Falso

    TableHasForeignKey

    Tabla

    La tabla tiene una restricción FOREIGN KEY.

    1 = Verdadero

    0 = Falso

    TableHasForeignRef

    Tabla

    Una restricción FOREIGN KEY hace referencia a la 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 desencadenador INSERT.

    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 elemento ROWGUIDCOL para una columna de tipo uniqueidentifier.

    1 = Verdadero

    0 = Falso

    TableHasTextImage

    Tabla

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

    1 = Verdadero

    0 = Falso

    TableHasTimestamp

    Tabla

    La tabla tiene una columna de tipo timestamp.

    1 = Verdadero

    0 = Falso

    TableHasUniqueCnst

    Tabla

    La tabla tiene una restricción UNIQUE.

    1 = Verdadero

    0 = Falso

    TableHasUpdateTrigger

    Tabla

    El objeto tiene un desencadenador UPDATE.

    1 = Verdadero

    0 = Falso

    TableHasVarDecimalStorageFormat

    Tabla

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

    1 = Verdadero

    0 = Falso

    TableInsertTrigger

    Tabla

    La tabla tiene un desencadenador INSERT.

    >1 = Identificador 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 de Motor de base de datos de SQL Server.

    1 = Verdadero

    0 = Falso

    TableIsLockedOnBulkLoad

    Tabla

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

    1 = Verdadero

    0 = Falso

    TableIsPinned

    Tabla

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

    0 = False

    Esta característica no se admite en SQL Server 2005 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

    La tabla tiene un desencadenador UPDATE.

    > 1 = Identificador 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.

    TableHasColumnSet

    Tabla

    La tabla tiene un conjunto de columnas.

    0 = False

    1 = True

    Para obtener más información, vea Usar conjuntos de columnas.

Tipos de valor devueltos

int

Excepciones

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

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

Comentarios

Motor de base de datos presupone que object_id se encuentra en el contexto de la base de datos actual. Una consulta que haga referencia a un parámetro object_id de otra base de datos devolverá NULL o resultados incorrectos. Por ejemplo, en la siguiente consulta, el contexto de base de datos es la base de datos master. 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'AdventureWorks2012.HumanResources.vEmployee'), 'IsView');
GO

OBJECTPROPERTY(view_id, 'IsIndexable') puede consumir una cantidad importante de recursos del equipo 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 obtener más información, vea CREATE INDEX (Transact-SQL).

OBJECTPROPERTY(table_id, 'TableHasActiveFulltextIndex') devolverá el valor 1 (true) si se agrega al menos una columna de una tabla para la indizació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 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).

Ejemplos

A.Comprobar si un objeto es una tabla

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

USE AdventureWorks2012;
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 escalar definida por el usuario es determinista

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

USE AdventureWorks2012;
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 AdventureWorks2012;
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

Vea también

Referencia

COLUMNPROPERTY (Transact-SQL)

Funciones de metadatos (Transact-SQL)

OBJECTPROPERTYEX (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)

TYPEPROPERTY (Transact-SQL)

sys.objects (Transact-SQL)