SQL Server系统函数:元数据函数

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server系统函数:元数据函数相关的知识,希望对你有一定的参考价值。

原文:SQL Server系统函数:元数据函数

 

1、列的长度、列名

  1. --列的长度
  2. select COL_LENGTH(‘dbo.wct‘, --表名
  3. ‘wcid‘) --列名
  4. --列名
  5. select COL_NAME(object_id(‘dbo.wct‘), --表ID
  6. 1) --列ID

columnProperty函数返回有关列过程参数的信息:

  1. select ColumnProperty(object_id(‘dbo.wct‘), --表ID
  2. ‘wcid‘, --列名
  3. ‘precision‘) --属性名

列属性:
ColumnId 

AllowsNull 
Precision
Scale

IsComputed
IsSparse
IsCursorType 
IsColumnSet 

IsIdentity
IsRowGuidCol 

FullTextTypeColumn 
IsFulltextIndexed

IsIdNotForRepl 
IsIndexable
IsOutParam
IsXmlIndexable 

IsDeterministic
IsPrecise
IsSystemVerified

SystemDataAccess 
UserDataAccess 
UsesAnsiTrim

 

2、数据库

  1. --DatabasePropertyEx函数返回指定数据库中指定选项的属性,要返回更多可以用sys.databases目录视图
  2. select DatabasePropertyEx(‘master‘, --数据库名
  3. ‘IsAutoClose‘) --属性名
  4. --db_id函数返回指定数据库名称对应的id
  5. select db_id(‘master‘)
  6. --db_name函数返回指定数据库id号的数据库名称
  7. select db_name(1)

3、文件与文件组

  1. --file_id函数返回指定逻辑文件名对应的id,以后版本将删除此函数
  2. select file_id(‘wc_fg5_1‘) --文件逻辑名
  3. --建议采用此函数
  4. select FILE_IDEX(‘wc_fg5_1‘)
  5. --filegroup_id函数返回指定文件组名称对应的id
  6. select filegroup_id(‘wc_fg5‘)
  7. --filegroup_name函数返回指定文件组id对应的文件组名称
  8. select filegroup_name(6)
  9. --FilegroupProperty函数返回指定文件组中相应选项的属性,
  10. --要返回更多可以用sys.filegroups目录视图
  11. select FilegroupProperty(‘wc_fg5‘,
  12. ‘IsUserDefinedFG‘) --是否是用户定义的文件组
  13. select FilegroupProperty(‘wc_fg5‘,
  14. ‘IsDefault‘) --是否是默认文件组
  15. select FilegroupProperty(‘wc_fg5‘,
  16. ‘IsReadOnly‘) --是否只读
  17. --file_name函数返回指定逻辑文件对应的逻辑文件名称
  18. select file_name(8)
  19. --FileProperty函数返回指定逻辑文件相应选项的属性
  20. select fileproperty(‘wc_data‘,
  21. ‘IsPrimaryFile‘)
  22. select fileproperty(‘wc_fg5_1‘,
  23. ‘IsReadOnly‘)
  24. select fileproperty(‘wc_fg5_1‘,
  25. ‘SpaceUsed‘) --返回在文件中分配的页数
  26. select fileproperty(‘wc_log1‘,
  27. ‘IsLogFile‘) --是否日志文件

4、对象

  1. --object_id函数返回架构范围内对象的数据库对象id
  2. select object_id(‘master.dbo.spt_values‘)
  3. select object_id(‘master.dbo.spt_values‘,‘U‘)
  4. --object_name函数返回架构范围内对象id对应的数据库对象名称
  5. select object_name(1115151018)
  6. --objectPropertyEx函数返回架构范围内对象相应选项的属性,返回更多可以用sys.objects系统目录
  7. select ObjectPropertyex(object_id(‘spt_values‘),
  8. ‘IsTable‘)
  9. select ObjectPropertyex(object_id(‘wct‘),
  10. ‘TableHasForeignKey‘)--有FOREIGN KEY约束的表
  11. select ObjectPropertyex(object_id(‘wct‘),
  12. ‘TableUpdateTriggerCount‘)--update触发器的个数
  13. select ObjectPropertyex(object_id(‘wct‘),
  14. ‘IsTrigger‘) --是否是触发器
  15. select ObjectPropertyex(object_id(‘wct‘),
  16. ‘TableHasPrimaryKey‘) --对象是否有主键

5、索引

  1. --索引中指定键id对应的列名
  2. select INDEX_COL(‘wc.dbo.wcT‘, --数据库.架构.表
  3. 1, --索引id
  4. 1) --索引中键的id
  5. --索引键的属性
  6. select INDEXKEY_PROPERTY(OBJECT_ID(‘wc.dbo.wcT‘), --对象id
  7. 1, --索引id
  8. 2, --键id
  9. ‘ColumnId‘) --对应到表中的列id
  10. select INDEXKEY_PROPERTY(OBJECT_ID(‘wc.dbo.wcT‘), --对象id
  11. 1, --索引id
  12. 2, --键id
  13. ‘IsDescending‘) --是否降序
  14. --索引属性
  15. select INDEXPROPERTY(object_id(‘wc.dbo.wcT‘),
  16. ‘pk_wcid_date‘,
  17. ‘IndexID‘) --索引id
  18. select INDEXPROPERTY(object_id(‘wc.dbo.wcT‘),
  19. ‘pk_wcid_date‘,
  20. ‘IsClustered‘) --是否聚集
  21. select INDEXPROPERTY(object_id(‘wc.dbo.wcT‘),
  22. ‘pk_wcid_date‘,
  23. ‘IsDisabled‘) --是否禁用
  24. select INDEXPROPERTY(object_id(‘wc.dbo.wcT‘),
  25. ‘pk_wcid_date‘,
  26. ‘IsRowLockDisallowed‘) --是否允许行级锁
  27. select INDEXPROPERTY(object_id(‘wc.dbo.wcT‘),
  28. ‘pk_wcid_date‘,
  29. ‘IsStatistics‘) --是否自动创建统计信息
  30. select INDEXPROPERTY(object_id(‘perfetti.dbo.wcT‘),
  31. ‘idx_wc‘,
  32. ‘IndexDepth‘) --索引深度

6、类型AllowsNull

  1. select TYPEPROPERTY(‘int‘, --类型名
  2. ‘Precision‘) --类型属性
  3. select TYPEPROPERTY(‘int‘, --类型名
  4. ‘AllowsNull‘) --类型属性

7、当前模块的对象ID,可以是存储过程,用户定义函数,触发器

select @@PROCID

8、扩展属性

  1. select * from ::fn_listextendedproperty(default,
  2. ‘schema‘, --架构
  3. ‘dbo‘, --架构名
  4. ‘table‘, --表
  5. ‘wcT‘, --表名
  6. default, --列
  7. default --列名
  8. )
  9. DECLARE @V SQL_VARIANT
  10. SET @V = ‘ABCEFG‘
  11. select SQL_VARIANT_PROPERTY(@V,
  12. ‘BaseType‘)
  13. select SQL_VARIANT_PROPERTY(@V,
  14. ‘TotalBytes‘)
  15. select SQL_VARIANT_PROPERTY(@V,
  16. ‘MaxLength‘)

9、服务器属性

  1. select SERVERPROPERTY(‘Collation‘),
  2. SERVERPROPERTY(‘IsClustered‘),
  3. SERVERPROPERTY(‘IsSingleUser‘),
  4. SERVERPROPERTY(‘MachineName‘),
  5. SERVERPROPERTY(‘ProcessID‘),
  6. SERVERPROPERTY(‘NumLicenses‘),
  7. SERVERPROPERTY(‘SqlSortOrder‘)

10、会话属性

  1. select SESSIONPROPERTY(‘ANSI_NULLS‘),
  2. SESSIONPROPERTY(‘ANSI_WARNINGS‘),
  3. SESSIONPROPERTY(‘ANSI_PADDING‘),
  4. SESSIONPROPERTY(‘ARITHABORT‘),
  5. SESSIONPROPERTY(‘NUMERIC_ROUNDABORT‘),
  6. SESSIONPROPERTY(‘CONCAT_NULL_YIELDS_NULL‘),
  7. SESSIONPROPERTY(‘QUOTED_IDENTIFIER‘)

 

发布了416 篇原创文章 · 获赞 135 · 访问量 94万+

以上是关于SQL Server系统函数:元数据函数的主要内容,如果未能解决你的问题,请参考以下文章

sql数据库截取字符串函数

Sql Server 常用函数

Sql Server函数全解之系统函数

Sql Server函数全解之系统函数

sql server 中如何查看自定义函数的源代码?

(4.37)sql server中的系统函数