天天看点

columnproperty server sql_SQL 2005中的XXproperty()函数总结

在使用SQL2005的时候经常会碰到XXproperty()的函数,现在归纳一下,有些函数比较重要。

1、serverproperty

作用:返回有关服务器实例的属性信息。

实例:SELECT CONVERT(char(20), SERVERPROPERTY('servername')) --返回服务器的计算机名;

SELECT  SERVERPROPERTY('productversion'),SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')  --判断SQL SERVER版本

2、columnproperty

作用:返回有关列或过程参数的信息。

实例:USE AdventureWorks;

GO

SELECT COLUMNPROPERTY( OBJECT_ID('Person.Contact'),'LastName','PRECISION')AS 'Column Length'; ----Person.Contact表里的LastName列的长度

GO

3、databaseproperty

作用:返回指定数据库和属性名的命名数据库属性值。

实例:SELECT  DATABASEPROPERTY('数据库名', 'isfulltextenabled')  ---判断数据库是否开启了全文搜索

4、DATABASEPROPERTYEX

作用:返回指定数据库的指定数据库选项或属性的当前设置。

实例:SELECT DATABASEPROPERTYEX('AdventureWorks', 'IsAutoShrink');

--判断AdventureWorks数据库是否启用了自动收缩 ,跟人感觉跟DATABASEPROPERTY()函数差不多

5、indexproperty

作用:根据指定的表标识号、索引或统计信息名称以及属性名称,返回已命名的索引或统计信息属性值

实例:USE AdventureWorks;

GO

SELECT

INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),

'PK_Employee_EmployeeID','IsClustered')AS [Is Clustered],         --IsClustered是否是聚集索引

INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),

'PK_Employee_EmployeeID','IndexDepth') AS [Index Depth],          --IndexDepth索引的深度

INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),

'PK_Employee_EmployeeID','IndexFillFactor') AS [Fill Factor];     --IndexFillFactor创建索引或最后重新生成索引时使用的填充因子值。

GO

6、indexkey_property

作用:返回有关索引键的信息

实例:USE AdventureWorks;

GO

SELECT

INDEXKEY_PROPERTY(OBJECT_ID('Production.Location', 'U'),

1,1,'ColumnId') AS [Column ID],

INDEXKEY_PROPERTY(OBJECT_ID('Production.Location', 'U'),    --是否降序排列

1,1,'IsDescending') AS [ Desc order];

GO

7、objectproperty

作用:返回当前数据库中架构范围内的对象的有关信息

实例:IF EXISTS ( SELECT  * FROM    sysobjects WHERE   id = OBJECT_ID(N'[存储过程名]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1 )

--是否是存储过程 (判断存储过程是否存在)

DROP PROCEDURE [存储过程名]

8、objectpropertyex

作用:返回当前数据库中架构范围内的对象的有关信息

实例:SELECT OBJECTPROPERTYEX(OBJECT_ID(N'AdventureWorks.HumanResources.vEmployee'), 'IsView');

--是否是视图 个人感觉跟objectproperty()函数差不多

9、sql_variant_property

作用:返回有关 sql_variant 值的基本数据类型和其他信息

实例:CREATE   TABLE tableA(colA sql_variant, colB int)

INSERT INTO tableA values ( cast (46279.1 as decimal(8,2)), 1689)

SELECT   SQL_VARIANT_PROPERTY(colA,'BaseType') AS 'Base Type',

SQL_VARIANT_PROPERTY(colA,'Precision') AS 'Precision',

SQL_VARIANT_PROPERTY(colA,'Scale') AS 'Scale'

FROM      tableA

WHERE      colB = 1689

10、fileproperty

功能:指定文件名和属性名时,返回指定的文件名属性值

实例:USE AdventureWorks

SELECT FILEPROPERTY('AdventureWorks_Data', 'IsPrimaryFile')AS [Primary File];

--判断AdventureWorks_Data是否是主数据文件(一定不要省略 USE AdventureWorks )

11、filegroupproperty

功能:提供文件组和属性名时,返回指定的文件组属性值

实例:USE AdventureWorks

SELECT FILEGROUPPROPERTY('PRIMARY', 'IsDefault') AS 'Default Filegroup'  --判断PRIMARY是否是默认文件组

12、typeproperty

功能:返回有关数据类型的信息。

实例:SELECT TYPEPROPERTY( 'tinyint', 'PRECISION') --输出数据类型tinyint的长度值

基本上就这麽多了,做一个笔记让自己以后可以记住。