返回当前数据库中对象的有关信息。
语法OBJECTPROPERTY ( id , property )
参数id
一个表达式,包含当前数据库中某个对象的 ID。id 的数据类型是 int。
Property
一个表达式,包含针对由 id 指定的对象将要返回的信息。Property 可以是下面这些值中的一个。
说明 除非加以注释,否则,如果 property 是无效的属性名,则返回 NULL。
属性名称 对象类型 描述和返回的值 CnstIsClustKey 约束 带有聚集索引的主键。
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = ON
0 = OFF
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = 可确定的
0 = 不可确定的
NULL = 不是标量值或表值函数,或者是无效的对象 ID。
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = 内嵌函数
0 = 非内嵌函数
NULL = 不是函数,或者是无效的对象 ID。
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = ON
0 = OFF
1 = True
0 = False
1 = True
0 = False
1 = 标量值
0 = 表值
NULL = 不是函数,或者是无效的对象 ID。
1 = 架构绑定
0 = 非架构绑定
NULL = 不是函数或视图,或者是无效的对象 ID。
1 = True
0 = False
1 = True
0 = False
1 = 表值
0 = 标量值
NULL = 不是函数,或者是无效的对象 ID。
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
Nonnull = 对象所有者的数据库用户 ID。
NULL = 无效的输入。
>1 = 给定类型的第一个触发器的 ID。
TableDeleteTriggerCount 表 表具有指定数目的 DELETE 触发器。 >1 = 给定类型的第一个触发器的 ID。
NULL = 无效的输入。
1 = True
0 = False
Nonzero = 全文目录 ID,它与标识全文索引表中行的唯一索引相关。
0 = 表不是全文索引的。
1 = True
0 = False
0 = 表不是全文索引的。
TableFullTextPopulateStatus 表 0 = 不填充1 = 完全填充
2 = 增量填充 TableHasActiveFulltextIndex 表 表具有一个活动的全文索引。
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
NULL = 无效的输入。
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
1 = True
0 = False
>1 = 给定类型的第一个触发器的 ID。
TableInsertTriggerCount 表 表具有指定数目的 INSERT 触发器。>1 = 给定类型的第一个触发器的 ID。
TableIsFake 表 表不是真实的。根据需要 SQL Server 对其进行内部具体化。 1 = True
0 = False
1 = True
0 = False
>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 选项,以便 text、ntext 或 image 数据可以存储在它的数据行内。
USE pubsSELECT OBJECTPROPERTY(OBJECT_ID('authors'),'TableTextInRowLimit')结果集显示在表上没有启用 text in row。
-----0C. 确定用户定义的标量值函数是否具有确定性下面的示例测试用户定义的标量值函数 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 SCHEMABINDINGASBEGIN RETURN ( @CubeLength * @CubeWidth * @CubeHeight )END--Is it a deterministic function?SELECT OBJECTPROPERTY(OBJECT_ID('fn_CubicVolume'), 'IsDeterministic')结果集显示 fn_CubicVolume 是确定性函数。
转自:http://hi.baidu.com/jiang_yy_jiang/item/c29dd917e5b0cc0bd0d66db8