Informix SQL – 列出所有字段和表

前端之家收集整理的这篇文章主要介绍了Informix SQL – 列出所有字段和表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Informix isql有一个命令“info tables;”显示所有表.
用于查看字段及其各自数据类型的语法是“表的信息列”;

是否有类似的命令显示所有表和所有字段的table.field?

解决方法

使用首选JOIN符号:
SELECT TRIM(t.tabname) || '.' || TRIM(c.colname) AS table_dot_column
  FROM "informix".systables  AS t
  JOIN "informix".syscolumns AS c ON t.tabid = c.tabid
 WHERE t.tabtype = 'T'
   AND t.tabid >= 100
 ORDER BY t.tabname,c.colno;

或者老式的join-in-where-clause符号:

SELECT TRIM(t.tabname) || '.' || TRIM(c.colname) AS table_dot_column
  FROM "informix".systables AS t,"informix".syscolumns AS c
 WHERE t.tabid = c.tabid
   AND t.tabtype = 'T'
   AND t.tabid >= 100
 ORDER BY t.tabname,c.colno;

假设您正在使用最新版本的IDS,则可以按列表中未列出的列进行排序.如果您收到投诉,请将订购列添加到选择列表.

加入标准是明显的; tabtype =’T’仅列出表中列出的视图,同义词和其他类似项目; tabid> = 100只列出了数据库中明确创建的表,而不是系统目录.

这不包括类型信息 – 如果你想要,你必须做更多的工作.您将找到一个文件$INFORMIXDIR / etc / xpg4_is.sql,其中包含旧版本的XPG4(X / Open标准)信息模式(因此是文件名)的粗略近似值.在那里,还有功能等来将类型信息从syscolumns.coltype和syscolumns.collength解码为可识别的字符串.但是,我强烈怀疑它不处理DISTINCT类型,也不处理其他用户定义的类型.我很高兴被证明是错误的,但是…如果您将该文件的相关部分添加数据库中,那么您也可以获取类型信息.

另请注意,Isql和DB-Access中的所有INFO命令都在前端进行仿真,不会在IDS服务器中执行.基本上,程序接受请求并将其转换成更复杂的sql语句.请参阅sqlCMD(可从IIUG Software Archive获取)的一部分sqlinfo.ec文件中的代码,了解我的sqlCMD程序如何处理INFO语句. (注意:sqlCMD的INFO输出格式与Isql和DB-Access的INFO输出格式不同.)

猜你在找的MsSQL相关文章