使用SQL生成指定数据库的数据字典(MSSQL)
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
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
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341