SQL2005中的XXproperty() 函数归纳

时间:2022-02-06 20:39:55

在使用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的长度值

 

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