如何用SQL语句读取SQL数据库中的表结构,请高手指点!
在SQL SERVER 中有一个数据库,库名为: STUDENTINFO
在数据库中有一个表,结构如下:
Student --表名
有字段如下:
StudentID Int
Name char(8)
如何用SQL语句将表的以上信息读取出来,得到如下结果
TableName ColName ColType ColLong
Student StudnetID Int 4
Student Name char 8
问题点数:100、回复次数:5Top
1 楼friendliu(无为)回复于 2004-09-04 11:36:31 得分 0
sp_help tablenameTop
2 楼friendliu(无为)回复于 2004-09-04 11:38:03 得分 50
根据知道一个表的名称,从而得到它的数据字典的信息
SELECT
表名=case when a.colorder=1 then d.name else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
))) then '√' else '' end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1 then '√'else '' end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')
FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e on a.cdefault=e.id
left join sysproperties g on a.id=g.id and a.colid=g.smallid
--where d.name='要查询的表' --如果只查询指定表,加上此条件
order by a.id,a.colorder
Top
3 楼lzymagi(逸)回复于 2004-09-04 11:43:23 得分 0
通过syslbjects和syscolumns提取。
Top
4 楼swordmanli(乘风破浪会有时,直挂云帆济沧海--太白)回复于 2004-09-04 17:03:53 得分 0
用powerdesigner逆向工程,将表结构到出来,再生成脚本,多好啊Top
5 楼zjcxc(邹建)回复于 2004-09-04 17:06:35 得分 50
--显示指定表的表结构信息,Student 是要显示的表名
exec sp_columns 'Student'Top




