【原】获取SQLServer的最完整数据字典的SQL语句

 

获取SQLServer的最完整数据字典的SQL语句

 

其实网上已经流传了很多关于获取SQLServer的数据字典的版本,不过我相信这个应该是最全的了,本语句包括了表、字段、字段类型、字段长度、是否为空、是否递增字段、索引名称、索引的定位、索引类型、主键、外键等;通过合理的裁剪可以很方便的生成相应的数据字典。

 

SELECT

sysobjects.name AS 表名称,
--sysproperties.[value] AS
表说明,
syscolumns.name AS
字段名称,
--properties.[value] AS
字段说明,
systypes.name AS
字段类型,
syscolumns.length AS
字段长度,
ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name,'Scale'), 0) AS
小数位数,

CASE WHEN syscolumns.isnullable=0
 THEN ''
ELSE '
'
END AS
是否为空,
CASE WHEN syscomments.text IS NULL
 THEN '' ELSE syscomments.text
END AS
缺省值,
CASE WHEN COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'IsIdentity')= 1
 THEN '
' ELSE ''
END AS
递增字段,
CASE WHEN sysindexes.name IS NULL
 THEN ''
ELSE sysindexes.name
END AS
索引名称,
CASE WHEN sysindexkeys.keyno IS NULL
 THEN ''
ELSE CONVERT(VARCHAR(10),sysindexkeys.keyno )
END AS
索引位置,
CASE WHEN sysindexes.indid=1
 THEN '
聚集索引'
WHEN sysindexes.indid>1 AND sysindexes.indid<>255
 THEN '
非聚集索引'
WHEN sysindexes.indid IS NULL
 THEN ''
ELSE
 '
其他'
END AS
索引类型,
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 = syscolumns.id AND colid = syscolumns.colid)))
 THEN '
' ELSE ''
END AS
主键,
CASE WHEN sysforeignkeys.constid IS NULL
 THEN ''
ELSE '
'
END AS
外健
FROM syscolumns                             --数据表字段
INNER JOIN sysobjects                         --数据对象
   ON sysobjects.id = syscolumns.id
INNER JOIN systypes                          --
数据类型
   ON syscolumns.xtype = systypes.xtype
LEFT OUTER JOIN sysproperties properties        --
字段属性信息
   ON syscolumns.id = properties.id
  AND syscolumns.colid = properties.smallid
LEFT OUTER JOIN sysproperties                 --
表属性信息
   ON sysobjects.id = sysproperties.id
  AND sysproperties.smallid = 0
LEFT OUTER JOIN syscomments                 --
注释信息
   ON syscolumns.cdefault = syscomments.id
LEFT OUTER JOIN sysindexkeys                 --
索引中的键或列的信息
   ON sysindexkeys.id = syscolumns.id
  AND sysindexkeys.colid = syscolumns.colid
LEFT OUTER JOIN sysindexes                   --
数据库索引表
   ON sysindexes.id = sysindexkeys.id
  AND sysindexes.indid = sysindexkeys.indid
LEFT OUTER JOIN sysforeignkeys
   ON sysforeignkeys.fkeyid = syscolumns.id
  AND sysforeignkeys.fkey = syscolumns.colid
WHERE (sysobjects.xtype = 'U')
order by sysobjects.id,syscolumns.colid

 

 

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6517/viewspace-351759/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/6517/viewspace-351759/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
注:运行程序需要Microsoft .NET Framework 2.0 支持. 更新说明(2.1.4): 1.修改数据字典排序后显示的信息. 2.增加所有按钮快捷键. 3.增加切换数据库功能. 4.修改数据字典部分界面布局. 5.修复部分功能BUG. (下个版本我会把支持SQL2000的数据字典功能更新上去) Command功能说明:(SQL查询命令) 1.支持SQL SERVER 2000、2005、2008 2.功能菜单包含新建连接、打开SQL代码、保存SQL代码、载入数据架构、切换数据库、执行编辑区代码、终止编辑区代码、分析编辑区代码、导出数据到EXCEL 3.数据架构菜单包含相关查询、添加、删除、修改SQL代码模板、 (视图、存储过程、触发器、自定义函数)代码、属性、描述等代码查询 4.代码编辑区支持SQL SERVER语法高亮 5.支持print代码执行 6.最大支持代码执行后显示5个结果,并显示相关行数。 7.数据视图支持行数据删除 8.数据视图支持列数据移动 9.代码编辑区支持选中代码执行 Document功能说明:(SQL数据字典) 1.支持SQL SERVER 2005、2008 2.功能菜单包含新建连接、载入数据架构、切换数据库、编辑描述(扩展属性)、导出数据到EXCEL 3.数据视图支持双击选中行修改描述 4.支持可快速搜索名称、描述 5.描述信息包含名、视图名称、自定义函数名称、存储过程名称、 触发器名称、字段、视图字段、自定义函数参数、存储过程函数参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值