从制造到创造
软件工程师成长之路
posts - 292,  comments - 96,  trackbacks - 0
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         -- 按表名、列名排序


查询结果:
snap0001.gif

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         -- 按表名、列名排序

查询结果:

snap0002.gif

3、如果要查看视图信息,只需要将SO.xtype = 'U'该为SO.xtype = 'V' 即可!


posted on 2006-09-25 14:49 CoderDream 阅读(3450) 评论(0)  编辑  收藏 所属分类: 数据库

只有注册用户登录后才能发表评论。


网站导航:
 

<2006年9月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(9)

我参与的团队

随笔分类(245)

随笔档案(239)

文章分类(3)

文章档案(3)

收藏夹(576)

友情链接

搜索

  •  

积分与排名

  • 积分 - 456226
  • 排名 - 114

最新评论

阅读排行榜

评论排行榜