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

SQLServer2008/2005 生成数据字典SQL语句

发布时间:2020-12-12 13:42:32 所属栏目:MsSql教程 来源:网络整理
导读:? http://space.itpub.net/16436858/spacelist-blog-itemtypeid-74583 以前用那个SQL语句来生成那个SQLServer库的数据字典,在SQL2000下用的挺好的,最近装上了那个SQL2008来研究, 突然发现不能在2008下用了,查了查资料,发现2008下有一些改动 贴上来留个
?

http://space.itpub.net/16436858/spacelist-blog-itemtypeid-74583

以前用那个SQL语句来生成那个SQLServer库的数据字典,在SQL2000下用的挺好的,最近装上了那个SQL2008来研究,

突然发现不能在2008下用了,查了查资料,发现2008下有一些改动

贴上来留个记号

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,'PRECISION'),???

??小数位数=isnull(COLUMNPROPERTY(a.id,'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???

?

?

以前的SQL2000下的语句

就改动了个sysproperties

?

Code

SELECT?????

??表名=case???when???a.colorder=1???then???d.name???else???''???end,???

??表说明=case???when???a.colorder=1???then???isnull(f.value,???

??字段序号=a.colorder,???

??字段名=a.name,???

??标识=case???when???COLUMNPROPERTY(???a.id,???

??主键=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,???

??小数位数=isnull(COLUMNPROPERTY(a.id,???

??允许空=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???sysproperties???g???on???a.id=g.id???and???a.colid=g.smallid???????

??left???join???sysproperties???f???on???d.id=f.id???and???f.smallid=0???

??--where???d.name='要查询的表'?????????--如果只查询指定表,加上此条件???

??order???by???a.id,a.colorder???

(编辑:李大同)

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

    推荐文章
      热点阅读