当前位置:  数据库>sqlserver

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

    来源: 互联网  发布时间:2014-10-04

    本文导语:  在网上查了部分资料但是发现粘上去的代码都存在问题,无奈只好自己修改了一下,代码如下: 如下代码能正常运行,都是网上查找资料最后拼凑总结出来的。条件就自己加吧。网上好像也有不少类型的东西,这里留着以备...

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

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

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,a.name,'PRECISION') as N'长度',
isnull(COLUMNPROPERTY(a.id,a.name,'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', N'user', N'dbo', N'table', N'表', NULL, NULL

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

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

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

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

--删除测试
Drop Table 表

    
 
 

您可能感兴趣的文章:

  • 从数据库得到多字段内容为何出错?
  • 如何在jsp中得到数据库中某张表的字段?
  • Select * from tableName如何通过结果集得到字段信息?
  • mysql怎么得到字段的值
  • 如何得到resultset结果集中的字段数阿
  • 请问如何得到某个字符串的部分字段,急!
  • java里有没有办法得到一个表里的字段名
  • 怎么样在JSP得到一个DATE的数据,并把他写到SQLSERVER的datetime字段里面?
  • 请问在java钟如何得到数据库中的记录总数,以及如何求数据库中一个字段的和?
  • 怎么得到数据库中含有时分秒的Date字段值?
  • 如何得到字段长度?如: field VCHAR (30)中的 (30)?
  • 苦恼的中文乱码!!!在servlet中用request.getParameter("xingming")得到的姓名域值就变成了乱码"???",更别提下面的转化函数得到的结果了。
  • 那里可以得到Kdevelop的帮助文档(最好是中文),谢谢
  • 从数据库中取出的数据用compareTo("中文")总没法得到想要的结果,请高手解答
  • shell中如何得到中文的拼音?
  • 为什么我在jsp页面用 "/servlet/goto.servlet?setname=中文",如果就这样传过去,在servlet里面得到的将是setname=null,如果传其他则可
  • 100分求救:在QT中,怎么得到QLineEdit的中文输入内容呢?
  • 问一个弱问题,哪里能够得到Unix环境下C库函数手册、C++类库手册、aCC使用方法,中文的。
  • 在form.action="servlet?china=中文" 附带了中文参数,但servlet里面得到的china=null,请问只用这种形式传递参数china,究竟有没有办法
  • 我用post传递数据为什么得到的是乱码???而不显示中文,我用了好多方法都不行~附代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何得到一个文件描述符的引用的个数?
  • 怎么通过FILE指针得到文件描述符?
  • linux下如何编程得到网卡的硬件描述,如得到某块网卡为“3Com 3c590/3c595....”
  • fork() 函数如果用文件描述符和文件指针得到的不同结果!
  • 万般火急!关于java打印,已经得到printerJob实例,那么怎么通过它得到Pageable实例?
  • 怎样得到当前目录(不是在java程序中得到)
  • File类的getLastModify()得到的是长型整数,如何才能得到一个已知文件日期?
  • DateFormat的用法?比如说现在想要得到21:38,我老是得到9:38
  • jsp中如何获得当前jsp文件所在的目录,用request.getServletPath()得到的路径含有jsp文件名,有没有办法得到目录(不含文件名)?
  • 我用JFileChooser得到了某个文件夹名,但如何得到此文件夹下的所有文件名
  • 如何得到一个终端的终端号/标示?
  • 菜问一则:请问用什么命令可得到系统路径
  • getInitParameter为什么得到null
  • 请问调用那个方法能够得到变量类型的返回值?
  • 怎样得到系统日期?
  • 用java.util.random怎么得到一个指定区间的随机数
  • 如何得到linux机器的时钟频率?
  • 急!如何得到snmp工具的显示数据?
  • 如何得到文本框里的自动换行标志?
  • 如何得到本机所有IP
  • bash脚本程序如何得到自身的执行路径?
  • Linux下得到进程号
  • 请问各位,getYear()得到的当前年,怎么是102?
  • 请问如何得到表单中的combox中的值


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3