SQLServer2008/2005 生成数据字典语句
SELECT
表名=case when a.colorder=1 then d.name else '' end ,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end ,
字段序号= a.colorder,
字段名= a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end ,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
SELECT name FROM sysindexes WHERE indid in (
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid= a.colid
))) 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=1 then '√'else '' end ,
默认值=isnull(e.text,'' ),
字段说明=isnull(g.[value],'' )
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
left join sys.extended_properties f on d.id=f.major_id and f.minor_id =0
--where d.name='要查询的表' --如果只查询指定表,加上此条件
order by a.id,a.colorder
表名=case when a.colorder=1 then d.name else '' end ,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end ,
字段序号= a.colorder,
字段名= a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end ,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
SELECT name FROM sysindexes WHERE indid in (
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid= a.colid
))) 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=1 then '√'else '' end ,
默认值=isnull(e.text,'' ),
字段说明=isnull(g.[value],'' )
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
left join sys.extended_properties f on d.id=f.major_id and f.minor_id =0
--where d.name='要查询的表' --如果只查询指定表,加上此条件
order by a.id,a.colorder
第二种版本
Code
以前的SQL2000下的语句
就改动了个sysproperties
Code
原文地址:
http://www.cnblogs.com/tulips/archive/2009/05/02/1447648.html
公告
本文转自
我的程序人生博客园博客,原文链接:
http://www.cnblogs.com/wenjl520/archive/2009/05/02/1447654.html,如需转载请自行联系原作者
【推荐】腾讯云新用户域名抢购1元起,抓紧抢购
· 精准率首次超过人类!阿里巴巴机器阅读理解打破世界纪录
· 技术帖:每天被今日头条推送文章 背后的算法技术是什么?
· 支付宝实体版老黄历问世:全球限量1000册
· 趣店被蚂蚁金服送上纽交所,现在是时候该独立了
· 蚂蚁宝卡升级:支付宝/微博即将免流
» 更多新闻...
· 以操作系统的角度述说线程与进程
· 软件测试转型之路
· 门内门外看招聘
· 大道至简,职场上做人做事做管理