DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sharehb
今日帖子: 23
在线用户: 20
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 99j1 (99) ★☆☆☆☆ -
盒子活跃会员
2003/12/14 19:58:33
标题:
这个问题可能有点难,但还是希望朋友们帮忙 浏览:1499
加入我的收藏
楼主: 请教:如何能都到数据库服务器上的所有数据库名和每个数据库下的表?
----------------------------------------------
-
作者:
男 cjrb (Thinking In 魂) ★☆☆☆☆ -
盒子活跃会员
2003/12/14 20:19:49
1楼: 数据库名可由TADOConnection或TDataBase获取列表

表信息如下:
列出SQL SERVER 所有表(pjessica收藏)
-- ====================================================== 

--列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息

--在查询分析器里运行即可,可以生成一个表,导出到EXCEL中

-- ======================================================

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 (SELECT count(*)

      FROM sysobjects

      WHERE (name in

                (SELECT name

               FROM sysindexes

               WHERE (id = a.id) AND (indid in

                         (SELECT indid

                        FROM sysindexkeys

                        WHERE (id = a.id) AND (colid in

                                  (SELECT colid

                                 FROM syscolumns

                                 WHERE (id = a.id) AND (name = a.name))))))) AND

             (xtype = 'PK'))>0 then '√' else ' end) 主键,

      b.name 类型,

      a.length 占用字节数,

      COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,

      isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,

      (case when a.isnullable=1 then '√'else ' end) 允许空,

      isnull(e.text,') 默认值,

      isnull(g.[value],') AS 字段说明    


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  

order by a.id,a.colorder

-----------------------------------------------------------------------------------

----------------------------------------------
按此在新窗口浏览图片 充电..........
作者:
男 99j1 (99) ★☆☆☆☆ -
盒子活跃会员
2003/12/15 13:17:18
2楼: 收藏先!谢谢!
有没有办法能够得到数据库服务器上的所有数据库名称,如能得到存储过程那就更好了,cjrb (虚渺) 大哥,用Adoconnection或Tdatabase如何做,能不能再帮帮忙
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS