| « | December 2025 | » | | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | |
|
| 公告 |
Back Today!
Hold on~
Come on~ |
| 统计 |
blog名称:执著 日志总数:39 评论数量:43 留言数量:0 访问次数:247452 建立时间:2005年3月4日 | |
[SQLSERVER]OBJECTPROPERTY,columnproperty两个函数 |
|
摘自联机从书:
OBJECTPROPERTY返回类型
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 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 columnproperty:返回类型int注释当检查列的确定性属性时,首先测试该列是否为计算列。IsDeterministic 对于非计算列返回 NULL。可以将计算列指定为索引列。示例下面的示例返回 au_lname 列的长度。SELECT COLUMNPROPERTY( OBJECT_ID('authors'),'au_lname','PRECISION')
| |
|
|
|
|
|