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

本文提供了一段SQL脚本,用于从SQL Server中查询表及其字段的详细信息,包括表名、字段名、字段类型等元数据,并展示了如何获取索引、主键及外键的相关属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

注:运行程序需要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、付费专栏及课程。

余额充值