在使用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
索引的各属性值请参看MSDN:http://msdn.microsoft.com/zh-cn/library/ms187729.aspx
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的长度值
基本上就这麽多了,做一个笔记让自己以后可以记住