• 外键,check,索引等,根据ID来检索详细信息


     

    sql server OBJECTPROPERTY 函数

    分类: Sql server2008-11-26 11:11 1562人阅读 评论(0) 收藏 举报

    OBJECTPROPERTY

     

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

    注:这个函也比较有用

    语法

    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 = 表不是全文索引的。

    TableFullTextPopulateStatus

    0 = 不填充
    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

    TableTextInRowLimit

    text 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 选项,以便 textntext 或 image 数据可以存储在它的数据行内。

    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

  • 相关阅读:
    7,MongoDB 之 Limit 选取 Skip 跳过 Sort 排序
    Python的while else
    linux route
    NCO
    rand和randn
    vi常用操作
    Linux常用命令
    Jmeter的NON-GUI模式
    Linux下安装jdk&Jmeter
    MySql安装完成后,Navicat连接不上的问题
  • 原文地址:https://www.cnblogs.com/guanshan/p/guan130.html
Copyright © 2020-2023  润新知