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

 

1、列的长度、列名

--列的长度
select COL_LENGTH('dbo.wct',  --表名
                  'wcid')     --列名

--列名
select COL_NAME(object_id('dbo.wct'),  --表ID
                1)                     --列ID

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

select ColumnProperty(object_id('dbo.wct'), --表ID
                      'wcid',               --列名
                      'precision')          --属性名

列属性:
ColumnId 

AllowsNull 
Precision
Scale

IsComputed
IsSparse
IsCursorType 
IsColumnSet 

IsIdentity
IsRowGuidCol 

FullTextTypeColumn 
IsFulltextIndexed

IsIdNotForRepl 
IsIndexable
IsOutParam
IsXmlIndexable 

IsDeterministic
IsPrecise
IsSystemVerified

SystemDataAccess 
UserDataAccess 
UsesAnsiTrim

 

2、数据库

--DatabasePropertyEx函数返回指定数据库中指定选项的属性,要返回更多可以用sys.databases目录视图
select DatabasePropertyEx('master',      --数据库名
                          'IsAutoClose') --属性名 

--db_id函数返回指定数据库名称对应的id
select db_id('master')    

--db_name函数返回指定数据库id号的数据库名称
select db_name(1) 

3、文件与文件组

--file_id函数返回指定逻辑文件名对应的id,以后版本将删除此函数
select  file_id('wc_fg5_1')   --文件逻辑名

--建议采用此函数
select FILE_IDEX('wc_fg5_1')

--filegroup_id函数返回指定文件组名称对应的id
select filegroup_id('wc_fg5') 

--filegroup_name函数返回指定文件组id对应的文件组名称
select filegroup_name(6) 

--FilegroupProperty函数返回指定文件组中相应选项的属性,
--要返回更多可以用sys.filegroups目录视图
select FilegroupProperty('wc_fg5',
                         'IsUserDefinedFG') --是否是用户定义的文件组

select FilegroupProperty('wc_fg5',
                         'IsDefault')   --是否是默认文件组

select FilegroupProperty('wc_fg5',
                         'IsReadOnly')  --是否只读
                         

--file_name函数返回指定逻辑文件对应的逻辑文件名称
select  file_name(8)

--FileProperty函数返回指定逻辑文件相应选项的属性
select  fileproperty('wc_data',        
                     'IsPrimaryFile')
                     
select  fileproperty('wc_fg5_1',        
                     'IsReadOnly')  
                     
select  fileproperty('wc_fg5_1',        
                     'SpaceUsed') --返回在文件中分配的页数
 
select  fileproperty('wc_log1',        
                     'IsLogFile') --是否日志文件

4、对象

--object_id函数返回架构范围内对象的数据库对象id
select object_id('master.dbo.spt_values') 

select object_id('master.dbo.spt_values','U')


--object_name函数返回架构范围内对象id对应的数据库对象名称
select object_name(1115151018)


--objectPropertyEx函数返回架构范围内对象相应选项的属性,返回更多可以用sys.objects系统目录
select ObjectPropertyex(object_id('spt_values'),
                        'IsTable')

select ObjectPropertyex(object_id('wct'),
                        'TableHasForeignKey')--有FOREIGN KEY约束的表

select ObjectPropertyex(object_id('wct'),
                        'TableUpdateTriggerCount')--update触发器的个数

select ObjectPropertyex(object_id('wct'),
                        'IsTrigger') --是否是触发器
                        
select ObjectPropertyex(object_id('wct'),
                        'TableHasPrimaryKey')         --对象是否有主键

5、索引

--索引中指定键id对应的列名
select INDEX_COL('wc.dbo.wcT',   --数据库.架构.表
                 1,              --索引id 
                 1)              --索引中键的id

--索引键的属性
select INDEXKEY_PROPERTY(OBJECT_ID('wc.dbo.wcT'), --对象id
                         1,                       --索引id
                         2,                       --键id
                         'ColumnId')              --对应到表中的列id  
                         
select INDEXKEY_PROPERTY(OBJECT_ID('wc.dbo.wcT'), --对象id
                         1,                       --索引id
                         2,                       --键id
                         'IsDescending')          --是否降序

--索引属性
select INDEXPROPERTY(object_id('wc.dbo.wcT'),
                     'pk_wcid_date',
                     'IndexID')  --索引id

select INDEXPROPERTY(object_id('wc.dbo.wcT'),
                     'pk_wcid_date',
                     'IsClustered') --是否聚集

select INDEXPROPERTY(object_id('wc.dbo.wcT'),
                     'pk_wcid_date',
                     'IsDisabled')  --是否禁用

select INDEXPROPERTY(object_id('wc.dbo.wcT'),
                     'pk_wcid_date',
                     'IsRowLockDisallowed') --是否允许行级锁

select INDEXPROPERTY(object_id('wc.dbo.wcT'),
                     'pk_wcid_date',
                     'IsStatistics')  --是否自动创建统计信息

select INDEXPROPERTY(object_id('perfetti.dbo.wcT'),
                     'idx_wc',
                     'IndexDepth')  --索引深度

6、类型AllowsNull

select TYPEPROPERTY('int', --类型名
                    'Precision') --类型属性
                    
select TYPEPROPERTY('int', --类型名
                    'AllowsNull') --类型属性
                    

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

select @@PROCID

8、扩展属性

select * from ::fn_listextendedproperty(default,
                                        'schema',    --架构
                                        'dbo',       --架构名 
                                        'table',     --表   
                                        'wcT',       --表名
                                        default,    --列
                                        default      --列名
                                        ) 

DECLARE @V SQL_VARIANT
SET @V = 'ABCEFG'

select SQL_VARIANT_PROPERTY(@V,
                            'BaseType')    

select SQL_VARIANT_PROPERTY(@V,
                            'TotalBytes') 

select SQL_VARIANT_PROPERTY(@V,
                            'MaxLength')

9、服务器属性

select SERVERPROPERTY('Collation'),
       SERVERPROPERTY('IsClustered'),
       SERVERPROPERTY('IsSingleUser'),
       SERVERPROPERTY('MachineName'),
       SERVERPROPERTY('ProcessID'),
       SERVERPROPERTY('NumLicenses'),
       SERVERPROPERTY('SqlSortOrder')

10、会话属性

select SESSIONPROPERTY('ANSI_NULLS'),
       SESSIONPROPERTY('ANSI_WARNINGS'),
       SESSIONPROPERTY('ANSI_PADDING'),
       SESSIONPROPERTY('ARITHABORT'),
       SESSIONPROPERTY('NUMERIC_ROUNDABORT'),
       SESSIONPROPERTY('CONCAT_NULL_YIELDS_NULL'),
       SESSIONPROPERTY('QUOTED_IDENTIFIER')

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值