SQL server表字段信息说明

本文提供SQL Server 2000及2005版本中导出表字段详细信息的SQL语句,包括字段名称、类型、是否允许为空等属性,适用于创建数据字典。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在做个小项目,需要导出表的字段信息,下面是针对,ms sql导出表字段信息的sql语句:
sql 2000:
ContractedBlock.gif ExpandedBlockStart.gif Code
 1SELECT 
 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'),0as 小数位数,
44
45      (case when a.isnullable=1 then ''else '' end) 允许空,
46
47      isnull(e.text,'') 默认值,
48
49      isnull(g.[value],''AS 字段说明    
50
51
52FROM  syscolumns  a left join systypes b 
53
54on  a.xtype=b.xusertype
55
56inner join sysobjects d 
57
58on a.id=d.id  and  d.xtype='U' and  d.name<>'dtproperties'
59
60left join syscomments e
61
62on a.cdefault=e.id
63
64left join sysproperties g
65
66on a.id=g.id AND a.colid = g.smallid  
67
68order by a.id,a.colorder
69
70
71
72

sql 2oo5:
ContractedBlock.gif ExpandedBlockStart.gif Code
 1SELECT
 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'),0as 小数位数,
23       (case when a.isnullable=1 then ''else '' end) 允许空,
24       isnull(e.text,'') 默认值,
25       g.[value] AS 字段说明
26
27FROM syscolumns a left join systypes b
28on a.xtype=b.xusertype
29inner join sysobjects d
30on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
31left join syscomments e
32on a.cdefault=e.id
33left join sys.extended_properties g
34on a.id=g.major_id AND a.colid = g.minor_id
35--WHERE d.[name]='AgentMessage' --你要查看的表名,注释掉,查看当前数据库所有表的字段信息
36order by a.id,a.colorder
37 
38

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

转载于:https://www.cnblogs.com/kevinlzf/archive/2009/07/27/1532276.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值