• 相关软件
    >OBJECTPROPERTY 创建者:webmaster 更新时间:2006-02-16 15:51

    返回当前数据库中对象的有关信息。



    语法


    OBJECTPROPERTY ( id , property )



    参数


    id



    一个表达式,包含当前数据库中某个对象的 ID。id 的数据类型是 int



    Property



    一个表达式,包含针对由 id 指定的对象将要返回的信息。Property 可以是下面这些值中的一个。



    说明  除非加以注释,否则,如果 property 是无效的属性名,则返回 NULL。














































































































































































































































































































































































































































































































































    属性名称对象类型描述和返回的值
    CnstIsClustKey约束带有聚集索引的主键。

    1 = True

    0 = False


    CnstIsColumn约束COLUMN 约束。

    1 = True

    0 = False


    CnstIsDeleteCascade约束带有 ON DELETE CASCADE 选项的外键约束。
    CnstIsDisabled约束禁用的约束。

    1 = True

    0 = False


    CnstIsNonclustKey约束带有非聚集索引的主键。

    1 = True

    0 = False


    CnstIsNotTrusted约束启用约束时未检查现有行,所以可能不是所有行都受约束的控制。

    1 = True

    0 = False


    CnstIsNotRepl约束使用 NOT FOR REPLICATION 关键字定义约束。
    CnstIsUpdateCascade约束带有 ON UPDATE CASCADE 选项的外键约束。
    ExecIsAfterTrigger触发器AFTER 触发器。
    ExecIsAnsiNullsOn过程、触发器、视图创建时的 ANSI_NULLS 设置。

    1 = True

    0 = False


    ExecIsDeleteTrigger触发器DELETE 触发器。

    1 = True

    0 = False


    ExecIsFirstDeleteTrigger触发器对表执行 DELETE 时触发的第一个触发器。
    ExecIsFirstInsertTrigger触发器对表执行 INSERT 时触发的第一个触发器。
    ExecIsFirstUpdateTrigger触发器对表执行 UPDATE 时触发的第一个触发器。
    ExecIsInsertTrigger触发器INSERT 触发器。

    1 = True

    0 = False


    ExecIsInsteadOfTrigger触发器INSTEAD OF 触发器。
    ExecIsLastDeleteTrigger触发器对表执行 DELETE 时触发的最后一个触发器。
    ExecIsLastInsertTrigger触发器对表执行 INSERT 时触发的最后一个触发器。
    ExecIsLastUpdateTrigger触发器对表执行 UPDATE 时触发的最后一个触发器。
    ExecIsQuotedIdentOn过程、触发器、视图创建时的 QUOTED_IDENTIFIER 设置。

    1 = True

    0 = False


    ExecIsStartup过程启动过程。

    1 = True

    0 = False


    ExecIsTriggerDisabled触发器禁用的触发器。

    1 = True

    0 = False


    ExecIsUpdateTrigger触发器UPDATE 触发器。

    1 = True

    0 = False


    HasAfterTrigger表,视图表或视图具有 AFTER 触发器。

    1 = True

    0 = False


    HasInsertTrigger表,视图表或视图具有 INSERT 触发器。

    1 = True

    0 = False


    HasInsteadOfTrigger表、视图表或视图具有 INSTEAD OF 触发器。

    1 = True

    0 = False


    HasUpdateTrigger表、视图表或视图具有 UPDATE 触发器。

    1 = True

    0 = False


    IsAnsiNullsOn函数、过程、表、触发器、视图指定表的 ANSI NULLS 选项设置为 ON,表示所有与空值的比较都取值为 UNKNOWN。只要表存在,该设置就应用于表定义中的所有表达式,包括计算列和约束。

    1 = ON

    0 = OFF


    IsCheckCnst任何CHECK 约束。

    1 = True

    0 = False


    IsConstraint任何约束。

    1 = True

    0 = False


    IsDefault任何绑定的默认值。

    1 = True

    0 = False


    IsDefaultCnst任何DEFAULT 约束。

    1 = True

    0 = False


    IsDeterministic函数、视图函数的确定性属性。只适用于标量值及表值函数。

    1 = 可确定的

    0 = 不可确定的

    NULL = 不是标量值或表值函数,或者是无效的对象 ID。


    IsExecuted任何指定执行该对象的方式(视图、过程或触发器)。

    1 = True

    0 = False


    IsExtendedProc任何扩展过程。

    1 = True

    0 = False


    IsForeignKey任何FOREIGN KEY 约束。

    1 = True

    0 = False


    IsIndexed表、视图带有索引的表或视图。
    IsIndexable表、视图可以创建索引的表或视图。
    IsInlineFunction函数内嵌函数。

    1 = 内嵌函数

    0 = 非内嵌函数

    NULL = 不是函数,或者是无效的对象 ID。


    IsMSShipped任何在安装 Microsoft® SQL Server™ 2000 的过程中创建的对象。

    1 = True

    0 = False


    IsPrimaryKey任何PRIMARY KEY 约束。

    1 = True

    0 = False


    IsProcedure任何过程。

    1 = True

    0 = False


    IsQuotedIdentOn函数、过程、表、触发器、视图指定表的被引用标识符设置为 ON,表示在表定义所涉及的所有表达式中,双引号标记分隔标识符。

    1 = ON

    0 = OFF


    IsReplProc任何复制过程。

    1 = True

    0 = False


    IsRule任何绑定的规则。

    1 = True

    0 = False


    IsScalarFunction函数标量值函数。

    1 = 标量值

    0 = 表值

    NULL = 不是函数,或者是无效的对象 ID。


    IsSchemaBound函数,视图使用 SCHEMABINDING 创建的架构绑定函数或视图。

    1 = 架构绑定

    0 = 非架构绑定

    NULL = 不是函数或视图,或者是无效的对象 ID。


    IsSystemTable系统表。

    1 = True

    0 = False


    IsTable表。

    1 = True

    0 = False


    IsTableFunction函数表值函数。

    1 = 表值

    0 = 标量值

    NULL = 不是函数,或者是无效的对象 ID。


    IsTrigger任何触发器。

    1 = True

    0 = False


    IsUniqueCnst任何UNIQUE 约束。

    1 = True

    0 = False


    IsUserTable用户定义的表。

    1 = True

    0 = False


    IsView视图视图。

    1 = True

    0 = False


    OwnerId任何对象的所有者。

    Nonnull = 对象所有者的数据库用户 ID。

    NULL = 无效的输入。


    TableDeleteTrigger表有 DELETE 触发器。

    >1 = 给定类型的第一个触发器的 ID。


    TableDeleteTriggerCount表具有指定数目的 DELETE 触发器。

    >1 = 给定类型的第一个触发器的 ID。

    NULL = 无效的输入。


    TableFullTextBackgroundUpdateIndexOn表已启用全文后台更新索引。

    1 = True

    0 = False


    TableFulltextCatalogId表的全文索引数据所驻留的全文目录的 ID。

    Nonzero = 全文目录 ID,它与标识全文索引表中行的唯一索引相关。

    0 = 表不是全文索引的。


    TableFullTextChangeTrackingOn表已启用全文更改跟踪。

    1 = True

    0 = False


    TableFulltextKeyColumn与某个单列唯一索引相关联的列 ID,这个单列唯一索引参与全文索引定义。

    0 = 表不是全文索引的。


    TableFullTextPopulateStatus0 = 不填充

    1 = 完全填充

    2 = 增量填充
    TableHasActiveFulltextIndex表具有一个活动的全文索引。

    1 = True

    0 = False


    TableHasCheckCnst表具有 CHECK 约束。

    1 = True

    0 = False


    TableHasClustIndex表具有聚集索引。

    1 = True

    0 = False


    TableHasDefaultCnst表具有 DEFAULT 约束。

    1 = True

    0 = False


    TableHasDeleteTrigger表具有 DELETE 触发器。

    1 = True

    0 = False


    TableHasForeignKey表具有 FOREIGN KEY 约束。

    1 = True

    0 = False


    TableHasForeignRef表由 FOREIGN KEY 约束引用。

    1 = True

    0 = False


    TableHasIdentity表具有标识列。

    1 = True

    0 = False


    TableHasIndex表具有一个任何类型的索引。

    1 = True

    0 = False


    TableHasInsertTrigger对象具有 Insert 触发器。

    1 = True

    0 = False

    NULL = 无效的输入。


    TableHasNonclustIndex表具有非聚集索引。

    1 = True

    0 = False


    TableHasPrimaryKey表具有主键。

    1 = True

    0 = False


    TableHasRowGuidCol对于 uniqueidentifier 列,表具有 ROWGUIDCOL。

    1 = True

    0 = False


    TableHasTextImage表具有 text 列。

    1 = True

    0 = False


    TableHasTimestamp表具有 timestamp 列。

    1 = True

    0 = False


    TableHasUniqueCnst表具有 UNIQUE 约束。

    1 = True

    0 = False


    TableHasUpdateTrigger对象具有 Update 触发器。

    1 = True

    0 = False


    TableInsertTrigger表具有 INSERT 触发器。

    >1 = 给定类型的第一个触发器的 ID。


    TableInsertTriggerCount表具有指定数目的 INSERT 触发器。

    >1 = 给定类型的第一个触发器的 ID。


    TableIsFake表不是真实的。根据需要 SQL Server 对其进行内部具体化。

    1 = True

    0 = False


    TableIsPinned驻留表以将其保留在数据高速缓存中。

    1 = True

    0 = False


    TableTextInRowLimittext in row 所允许的最大字节数,如果没有设置 text in row 选项则为 0。
    TableUpdateTrigger表具有 UPDATE 触发器。

    >1 = 给定类型的第一个触发器的 ID。


    TableUpdateTriggerCount表具有指定数目的 UPDATE 触发器。

    >1 = 给定类型的第一个触发器的 ID。





    返回类型


    int



    注释


    OBJECTPROPERTY(view_id,'IsIndexable') 可能会耗费大量的计算机资源,这是因为对 IsIndexable 属性的评估需要分析视图定义、进行规范化以及部分优化。



    当至少添加了表的一列以用于索引时,OBJECTPROPERTY(table_id, 'TableHasActiveFulltextIndex') 将返回"1"(True)。只要添加了用于索引的第一列后,全文索引即可用于填充。



    当除去索引中的最后一列时,索引变成非活动。



    如果某些索引键需求条件得不到满足,那么实际创建索引仍然可能会失败。详细信息请参见 CREATE INDEX。



    示例


    A. 查明 authors 是否为一个表


    下面的示例测试 authors 是否为一个表。



    IF OBJECTPROPERTY ( object_id('authors'),'ISTABLE') = 1
      print 'Authors is a table'

    ELSE IF OBJECTPROPERTY ( object_id('authors'),'ISTABLE') = 0
      print 'Authors is not a table'

    ELSE IF OBJECTPROPERTY ( object_id('authors'),'ISTABLE') IS NULL
      print 'ERROR: Authors is not an object'


    B. 确定是否在表上启用了 text in row


    下面的示例测试是否在 authors 表上启用了 text in row 选项,以便 textntextimage 数据可以存储在它的数据行内。



    USE pubs
    SELECT OBJECTPROPERTY(OBJECT_ID('authors'),'TableTextInRowLimit')


    结果集显示在表上没有启用 text in row



    -----
    0


    C. 确定用户定义的标量值函数是否具有确定性


    下面的示例测试用户定义的标量值函数 fn_CubicVolume 是否具有确定性,该函数返回小数。



    CREATE FUNCTION fn_CubicVolume
    -- Input dimensions in centimeters.
      (@CubeLength decimal(4,1), @CubeWidth decimal(4,1),
      @CubeHeight decimal(4,1) )
    RETURNS decimal(12,3) -- Cubic Centimeters.
    WITH SCHEMABINDING
    AS
    BEGIN
      RETURN ( @CubeLength * @CubeWidth * @CubeHeight )
    END

    --Is it a deterministic function?
    SELECT OBJECTPROPERTY(OBJECT_ID('fn_CubicVolume'), 'IsDeterministic')


    结果集显示 fn_CubicVolume 是确定性函数。



    -----
    1
    相关文章
    本页查看次数: