SQL好象不能实现吧。
Delphi提供了函数列出数据别名下的所有数据表。
若是大型数据库的话,好象有一个系统表存有数据表的名称,但我忘记是哪个表了

解决方案 »

  1.   

    oracle:
    select sys.obj$.NAME from sys.obj$,sys.tab$,sys.user$ where sys.tab$.OBJ# = sys.obj$.OBJ# and sys.obj$.OWNER# = sys.user$.USER# and sys.user$.NAME = '用户名(大写)'
      

  2.   

    select  *  from sysobjects where stat=99
    还有另外的多种方法。不一一枚举。
      

  3.   

    继续关注sql server
    我想skimwater(掠水惊鸿)应该更正为:
    select  *  from sysobjects where sysstat=99
    有谁能提供sysstat的值的说明。
      

  4.   

    建议用snakezou的方法,省得你还要区分不同的数据库。
    TSession.GetTableNames(
      const DatabaseName, // 不用说了,TDatabase.DatabaseName
      Pattern: String;  // 模糊匹配,用*号,空串是所有
      Extensions,  // 只有dBase和Paradox才用,取扩展名。对大数据库,设为False
      SystemTables: Boolean; // 是否包含系统表
      List: TStrings  // 存放结果
    );TADOConnection.GetTableNames(
      List: TStrings;  // 存放结果
      SystemTables: Boolean = False // 是否包含系统表
    );