在做个小项目,需要导出表的字段信息,下面是针对,ms sql导出表字段信息的sql语句:
sql 2000:

Code
1
SELECT
2
3
(case when a.colorder=1 then d.name else '' end)表名,
4
5
a.colorder 字段序号,
6
7
a.name 字段名,
8
9
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,
10
11
(case when (SELECT count(*)
12
13
FROM sysobjects
14
15
WHERE (name in
16
17
(SELECT name
18
19
FROM sysindexes
20
21
WHERE (id = a.id) AND (indid in
22
23
(SELECT indid
24
25
FROM sysindexkeys
26
27
WHERE (id = a.id) AND (colid in
28
29
(SELECT colid
30
31
FROM syscolumns
32
33
WHERE (id = a.id) AND (name = a.name))))))) AND
34
35
(xtype = 'PK'))>0 then '√' else '' end) 主键,
36
37
b.name 类型,
38
39
a.length 占用字节数,
40
41
COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,
42
43
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,
44
45
(case when a.isnullable=1 then '√'else '' end) 允许空,
46
47
isnull(e.text,'') 默认值,
48
49
isnull(g.[value],'') AS 字段说明
50
51
52
FROM syscolumns a left join systypes b
53
54
on a.xtype=b.xusertype
55
56
inner join sysobjects d
57
58
on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
59
60
left join syscomments e
61
62
on a.cdefault=e.id
63
64
left join sysproperties g
65
66
on a.id=g.id AND a.colid = g.smallid
67
68
order by a.id,a.colorder
69
70
71
72
sql 2oo5:

Code
1
SELECT
2
(case when a.colorder=1 then d.name else '' end) 表名,
3
a.colorder 字段序号,
4
a.name 字段名,
5
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,
6
(case when (SELECT count(*)
7
FROM sysobjects
8
WHERE (name in
9
(SELECT name
10
FROM sysindexes
11
WHERE (id = a.id) AND (indid in
12
(SELECT indid
13
FROM sysindexkeys
14
WHERE (id = a.id) AND (colid in
15
(SELECT colid
16
FROM syscolumns
17
WHERE (id = a.id) AND (name = a.name))))))) AND
18
(xtype = 'PK'))>0 then '√' else '' end) 主键,
19
b.name 类型,
20
a.length 占用字节数,
21
COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,
22
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,
23
(case when a.isnullable=1 then '√'else '' end) 允许空,
24
isnull(e.text,'') 默认值,
25
g.[value] AS 字段说明
26
27
FROM syscolumns a left join systypes b
28
on a.xtype=b.xusertype
29
inner join sysobjects d
30
on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
31
left join syscomments e
32
on a.cdefault=e.id
33
left join sys.extended_properties g
34
on a.id=g.major_id AND a.colid = g.minor_id
35
--WHERE d.[name]='AgentMessage' --你要查看的表名,注释掉,查看当前数据库所有表的字段信息
36
order by a.id,a.colorder
37
38
copy结果到excel或word,就ok了。相当于数据字典了。
参考:
http://blog.csdn.net/ITOfficeboy/archive/2009/03/04/3955400.aspx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述