关于获取表的列名及类型 ( 积分: 100 )

  • 主题发起人 主题发起人 chinawbc
  • 开始时间 开始时间
C

chinawbc

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将一些表的列名及类型记录到另一个表中,哪位朋友知道如何去做?
 
我想将一些表的列名及类型记录到另一个表中,哪位朋友知道如何去做?
 
用的什么数据库啊?如果是SQLSERVER,可以从SysObjects表中选出来
 
如果我做这件事,首先我会从数据库的系统表获得信息,这是最直接的想法。这时,一个select ...into...即可。不同数据库的系统表不同,有的数据库还提供过程或函数,只
要将表名作为参数,就能得到字段信息。
如果我不了解系统表的结构,而且我很懒,最主要的是需要在客户端处理,我可能会利用
AdoQuery或者Query执行这样的命令:select * from tablename where 1=2
这样返回一个空的数据集,速度很快,但是AdoQuery或者Query已经包含了全部字段信息。
--在客户端处理的一个好处是可移植性好!能适应不同数据库。
 
是SqlServer,我想做个数据库字典,懒得一条条的向库里加数据.
SysObjects是可以,不过链接的表太多,有没有更简便的方法?
 
存储过程sp_columns 就行!
 
我知道sp_columns可以,但只是显示出来,怎样才能把数据插入到我的某个表中?谢谢
 
SELECT * FROM dbo.syscolumns
 
唉,还是不对,这样取出来的只是列名,类型和表名没在其中,需要链接其它的表.
 
//xtype就是数据类型
SELECT name, xtype FROM dbo.syscolumns
WHERE id = (SELECT ID FROM dbo.sysobjects WHERE Name=表名)
 
//xtype的含义
SELECT * FROM dbo.systypes
 
接受答案了.
 
后退
顶部