使用SQL生成指定数据库的数据字典(MSSQL)

使用SQL生成指定数据库的数据字典(MSSQL)USE DBNAME –指定要生成数据字典的数据库 GO SELECT 表名= CASE WHEN a.colorder= 1 THEN d.name ELSE '' END, 表说

USE DBNAME --指定要生成数据字典的数据库

GO
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

代码100分

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10702.html

(0)
上一篇 2022-12-23 11:30
下一篇 2022-12-23

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注