SqlSever查询某个表的列名称、说明、备注、注释,类型等这周整理了数据库⽂档,发现⽤导出脚本来整理表的信息注释查看不⽅便,因此我就想能不能SQL语句查询表的注释或者表的字段。我就
我问朋友是不是可以,他给我点指导,然后⾃⼰也在⽹上百度,来实现⾃⼰的想法,我把我⾃⼰查的资料总结,理解,汇总的随笔,如⽂章中有不⾜的地⽅,请⼤家多多指教;或者⽂章内容与他⼈相似,望见谅。
information_schema:系统视图
表或表字段等的注释,是数据库对象的扩展属性。在MSSQL中,⽀持把⼀些注释性的内容放到数据库或数据库对象中,增强可读性,有助于⽇后的管理和维护⼯作。扩展属性的内容可以通过SSMS添加、修改或删除,也可以通过系统视图查询,通过执⾏相关的存储过程来维护。
1. 查询⼀个表的所有列名
------查询⼀个表的所有列名
Select Name FROM SysColumns Where id=Object_Id('Sys_User')
lumn_name from lumns t where t.table_name='Sys_User';
如图所⽰:
2. 查询⼀个表的所有字段的注释
------查询⼀个表的所有字段的注释
select value ded_properties where major_id =object_id ('Sys_User' );
如图所⽰:
3. 查询⼀个表的所有列名,字段的注释
------查询⼀个表的所有列名,字段的注释
SELECT
A.name AS table_name,
B.name AS column_name,
C.value AS column_description
FROM sys.tables A
INNER lumns B ON B.object_id= A.object_id
LEFT ded_properties C ON C.major_id = B.object_id AND C.minor_id = B.column_id
WHERE A.name ='Sys_User'
如图所⽰:
4. 查询⼀个表的所有列名,数据类型
------查询⼀个表的所有列名,数据类型
select column_name,data_type from lumns
where table_name ='Sys_User'
如图所⽰:
5. 查询⼀个表的所有信息
------查询⼀个表的所有信息
select*FROM lumns
where table_name ='Sys_User'
6. sqlserver 查询某个表的列名称、说明、备注、类型等
------sqlserver 查询某个表的列名称、说明、备注、类型等
SELECT
表名=case lorder=1then d.name else''end,
表说明=case lorder=1then isnull(f.value,'') else''end,
字段序号= a.colorder,
字段名= a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1then'√'else''end,
主键=case when exists(SELECT1FROM sysobjects where xtype='PK'and parent_obj=a.id and name in (
SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND lid))) then'√'else''end,类型= b.name,
占⽤字节数= a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
⼩数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1then'√'else''end,
默认值=,''),
字段说明=isnull(g.[value],'')
FROM
syscolumns a
left join
systypes b
on
a.xusertype=
b.xusertype
inner joinisnull的用法
sysobjects d
on
a.id=d.id  pe='U'and  d.name<>'dtproperties'
left join
syscomments e
on
a.cdefault=e.id
left join
on
a.id=G.major_id lid=g.minor_id
left join
on
d.id=f.major_id and f.minor_id=0
where
d.name='Sys_User'--如果只查询指定表,加上此where条件,tablename是要查询的表名;去除where条件查询所有的表信息
order by
a.lorder
如图所⽰: