SQL Server没有Oracle的DESC命令,在Orcale中,我们可以使用:DESC 表名; 来查询表的结构,但SQL Server没有提供这个命令,只有一个sp_help 表名;的存储过程来查看表的所有信息。下面我们来通过SELECT语句查询表的结构。
我们新建了一张表后,会将所有与表有关的信息写入该数据库下面的某张系统表, sysobjects, syscolumns, systypes 是其中三张,我们要找的信息就在这三张表里面:
1、下面查询所有表的结构注意,这里要加一个条件:SO.status >= 0,否则会将系统的临时表显示出来 1 SELECT
2 SO.name 表名,
3 SC.name 表列名,
4 SC.colid 索引,
5 ST.name 类型
6 FROM
7 sysobjects SO, -- 对象表
8 syscolumns SC, -- 列名表
9 systypes ST -- 数据类型表
10 WHERE
11 SO.id = SC.id
12 AND SO.xtype = 'U' -- 类型U表示表,V表示视图
13 AND SO.status >= 0
14 AND SC.xtype = ST.xusertype
15 ORDER BY
16 SO.name, SC.colorder -- 按表名、列名排序
查询结果:
2、下面查询某张特定表的结构
1 SELECT
2 SO.name 表名,
3 SC.name 表列名,
4 SC.colid 索引,
5 ST.name 类型
6 FROM
7 sysobjects SO, -- 对象表
8 syscolumns SC, -- 列名表
9 systypes ST -- 数据类型表
10 WHERE
11 SO.id = SC.id
12 AND SO.xtype = 'U' -- 类型U表示表,V表示视图
13 AND SO.status >= 0 -- status >= 0 为非系统对象
14 AND SC.xtype = ST.xusertype
15 AND SO.name = 'T_Employee' -- 某张特定表
16 ORDER BY
17 SO.name, SC.colorder -- 按表名、列名排序
查询结果:
3、如果要查看视图信息,只需要将SO.xtype = 'U'该为SO.xtype = 'V' 即可!
posted on 2006-09-25 14:49
CoderDream 阅读(3452)
评论(0) 编辑 收藏 所属分类:
数据库