SQL server表字段信息说明
SQL server表字段信息说明
在做个小项目,需要导出表的字段信息,下面是针对,ms sql导出表字段信息的sql语句:
sql 2000:
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 sysobjects14

15
WHERE (name in16

17
(SELECT name18

19
FROM sysindexes20

21
WHERE (id = a.id) AND (indid in22

23
(SELECT indid24

25
FROM sysindexkeys26

27
WHERE (id = a.id) AND (colid in28

29
(SELECT colid30

31
FROM syscolumns32

33
WHERE (id = a.id) AND (name = a.name))))))) AND34

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.xusertype55

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 e61

62
on a.cdefault=e.id63

64
left join sysproperties g65

66
on a.id=g.id AND a.colid = g.smallid 67

68
order by a.id,a.colorder69

70

71

72

sql 2oo5:
1
SELECT2
(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 sysobjects8
WHERE (name in9
(SELECT name10
FROM sysindexes11
WHERE (id = a.id) AND (indid in12
(SELECT indid13
FROM sysindexkeys14
WHERE (id = a.id) AND (colid in15
(SELECT colid16
FROM syscolumns17
WHERE (id = a.id) AND (name = a.name))))))) AND18
(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 b28
on a.xtype=b.xusertype29
inner join sysobjects d30
on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'31
left join syscomments e32
on a.cdefault=e.id33
left join sys.extended_properties g34
on a.id=g.major_id AND a.colid = g.minor_id35
--WHERE d.[name]='AgentMessage' --你要查看的表名,注释掉,查看当前数据库所有表的字段信息36
order by a.id,a.colorder37
38

copy结果到excel或word,就ok了。相当于数据字典了。
参考:
http://blog.csdn.net/ITOfficeboy/archive/2009/03/04/3955400.aspx

浙公网安备 33010602011771号