获取SQLServer 的最完整数据字典的SQL 语句
来源:互联网 发布:linux shell 百度云 编辑:程序博客网 时间:2024/05/11 19:37
其实网上已经流传了很多关于获取 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
- 获取SQLServer的最完整数据字典的SQL语句
- 获取SQLServer的最完整数据字典的SQL语句
- 获取SQLServer 的最完整数据字典的SQL 语句
- sqlserver导出 数据字典的SQL语句
- 获取MSSQL数据字典的SQL语句
- 获取MS SQL库数据字典的经典SQL语句
- 获取MS SQL库数据字典的经典SQL语句
- 获取MS SQL库数据字典的经典SQL语句
- 获取MS SQL库数据字典的经典SQL语句
- sqlserver 获取数据字典的经典脚本
- 用Sql语句生成Sqlserver数据字典
- 用Sql语句生成Sqlserver数据字典
- sqlserver 的数据字典
- sqlserver获取表外键的SQL语句
- 生成数据字典的sql语句
- 查看SQLServer最耗资源时间的SQL语句
- 用Sql语句生成Sqlserver数据字典^_^
- 用Sql语句生成Sqlserver数据字典^_^
- Java WebService 接口调用
- Cannot open the disk 'D:/vmware/Ubuntu.vmdk' or one of the snapshot disks it depends on
- 如何“正确”为SharePoint字段命名 - Sharepoint internal name and display name
- oracle包体中的储存过程与函数
- Eclipse搭建Spring开发环境
- 获取SQLServer 的最完整数据字典的SQL 语句
- java弱引用(WeakReference)和SoftReference的区别以及在android内存处理的作用
- HTML5基本用法1
- 谷歌钱包
- Redis集群服务器-高可用调研随笔
- 主机字节顺序和网络字节顺序
- Linux挂载网络文件夹(简单NFS配置)
- 牛叉! 移动支付智能终端机, Android系统的包括GSM/WiFi/蓝牙/NFC,条码,银行卡刷卡,打印
- 我们都一样