[点晴永久免费OA]SQLSERVER 快速生成【数据字典】
:SQLSERVER 快速生成【数据字典】
对接需要数据字典,
手写耗时一笔难画;
下述快速法如飞翔,
生成字典梦不曾寐。
效果
下面讲述以下sqlserver生成数据字典步骤:
用户表
生成数据字典
执行以下SQL:
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 = 'User'
ORDER BY
a.id,
a.colorder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
复制生成文档
执行sql后 => 全选结果 => 连同标题一起复制 => 新建xslx => 粘贴
这样一份数据字典文档就完成了,在更新表字段、说明时,可快速生成并替换之前的文档。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_38479883/article/details/134122203