加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 得到数据库中所有表名 表字段及字段中文描述

发布时间:2020-12-12 07:39:22 所属栏目:MsSql教程 来源:网络整理
导读:感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 在网上查了部分资料但是发现粘上去的代码都存在问题,无奈只好自己修改了一下,代码如下: 如下代码能正常运行,都是网上查找资料最后拼凑总结出来的。条件就自己加吧。网上好像也有不

感兴趣的小伙伴,下面一起跟随编程之家 52php.cn的小编两巴掌来看看吧!

在网上查了部分资料但是发现粘上去的代码都存在问题,无奈只好自己修改了一下,代码如下:

如下代码能正常运行,都是网上查找资料最后拼凑总结出来的。条件就自己加吧。网上好像也有不少类型的东西,这里留着以备不时只需!

代码如下:

 
SELECT 
(case when a.colorder=1 then d.name else '' end) N'表名',a.colorder N'字段序号',a.name N'字段名',(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识',(case when (SELECT count(*) 
FROM sysobjects 
WHERE (name in 
(SELECT name 
FROM sysindexes 
WHERE (id = a.id) AND (indid in 
(SELECT indid 
FROM sysindexkeys 
WHERE (id = a.id) AND (colid in 
(SELECT colid 
FROM syscolumns 
WHERE (id = a.id) AND (name = a.name))))))) AND 
(xtype = 'PK'))>0 then '√' else '' end) N'主键',b.name N'类型',a.length N'占用字节数',COLUMNPROPERTY(a.id,'PRECISION') as N'长度',isnull(COLUMNPROPERTY(a.id,'Scale'),0) as N'小数位数',(case when a.isnullable=1 then '√'else '' end) N'允许空',isnull(e.text,'') N'默认值',isnull(g.[value],'') AS N'字段说明' 
--into ##tx 
FROM syscolumns a left join systypes b 
on a.xtype=b.xusertype 
inner join sysobjects d 
on a.id=d.id and d.xtype='U' and d.name<>'dtproperties' 
left join syscomments e 
on a.cdefault=e.id 
left join sys.extended_properties g 
on a.id=g.major_id AND a.colid = g.minor_id 
order by object_name(a.id),a.colorder 


sysproperties表的详解:

1、表名:sqlserver的注释表,每个数据库都有,包括表和字段的注释,表或者列的注释都会存储,没有注释不存储。
2、字段:
id:表的ID或者是列的ID
smallid:列的顺序,排序用
type:3 表,4字段,可能还有约束什么的,还没有测试出
name:统一的MS_Description
value:描述

如需修改(转载部分)

如果需要更新 此表的 内容 需要 开启 [允许对系统目录直接进行修改],否则 改不了 系统表
【图片暂缺】
如果 不开启 此 功能,那么也可以 使用 存储过程[sp_addextendedproperty] 来 添加更新删除 表和字段的描述 用法如下

--创建表
Create Table 表(a1 varchar(10),a2 char(2))

--为表 添加 描述信息 : 第二个参数为 [描述] 第六个参数为 [表名]
EXECUTE sp_addextendedproperty N'MS_Description','人员信息表',N'user',N'dbo',N'table',N'表',NULL,NULL

--为表 更新 描述信息 : 第二个参数为 [描述] 第六个参数为 [表名]
EXECUTE sp_updateextendedproperty 'MS_Description',N'adsfasfdas',NULL

--为表 删除 描述信息 : 第五个参数为 [表名]
EXEC sp_dropextendedproperty 'MS_Description',NULL

--字段的 添加 更新 删除 方法
--为 字段a1 添加 描述信息: 第二个参数为 [描述] 第六个参数为 [表名] 第八个参数为 [字段名称]
EXECUTE sp_addextendedproperty N'MS_Description','姓名',N'column',N'a1'

--更新 字段 a1 的描述属性:第二个参数为 [描述] 第六个参数为 [表名] 第八个参数为 [字段名称]
EXEC sp_updateextendedproperty 'MS_Description','字段1dd','user',dbo,'table','表','column',N'a1'

--删除 字段 a1 的描述属性:第五个参数为 [表名] 第七个参数为 [字段名称]
EXEC sp_dropextendedproperty 'MS_Description','a1'

--删除测试
Drop Table 表

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读