【问题标题】:Table Details in SQL Anywhere?SQL Anywhere 中的表详细信息?
【发布时间】:2010-10-09 18:41:58
【问题描述】:

我刚刚下载了 SQL Anywhere 的开发人员版。如何获取我连接到的数据库中的表列表?同样对于特定表,我如何获取该表的元数据(列名、类型等)?

【问题讨论】:

  • 我在这里得到了关于表格详细信息的部分问题的答案:stackoverflow.com/questions/100504/… 但我仍然不知道如何找到表格列表。不过我有个主意,让我试试:)

标签: database sqlanywhere


【解决方案1】:

我已经很多年没有使用 SQL-Anywhere 但是下面的语句应该可以工作

select c.column_name
from systabcol c 
   key join systab t on t.table_id=c.table_id 
   where t.table_name='tablename'

这是直接抄自an earlier question

【讨论】:

    【解决方案2】:

    假设 Windows:开始 - 所有程序 - SQL Anywhere 11 - Sybase Central

    然后连接 - 使用 SQL Anywhere 11 连接...

    选择“ODBC 数据源名称”并选择“SQL Anywhere 11 Demo”

    按 OK 以查看数据库中各种对象(表等)的树形视图。

    【讨论】:

      【解决方案3】:
      select * from systable  // lists all tables
      select * from syscolumn // lists all tables columns
      

      【讨论】:

        【解决方案4】:

        对于特定的表:

        describe TableName
        

        将返回表的列,并指示列的类型、是否可为空和主键

        【讨论】:

          【解决方案5】:
          SELECT b.name + '.' + a.name
            FROM sysobjects a, sysusers b
           WHERE a.type IN ('U', 'S')
             AND a.uid = b.uid
           ORDER BY b.name, a.name
          

          这将产生一个表和有权访问它们的用户的列表。

          【讨论】:

            【解决方案6】:

            系统进程,sa_describe_query 很有用

            SELECT * FROM sa_describe_query('select * from TableName')

            【讨论】:

              【解决方案7】:

              获取数据库中使用的所有表的列表:

              select * from systable //without 's'
              

              获取所有列的列表:

              select * from syscolumn //without 's'
              

              【讨论】:

                【解决方案8】:

                使用此视图:http://dcx.sybase.com/1001/en/dbrfen10/rf-syvcol.html

                试试

                select * from sys.syscolumns
                

                或只是您创建的表:

                select * from sys.syscolumns where creator=(select current user)
                

                【讨论】:

                  【解决方案9】:

                  选择一个表的详细信息

                  select * from Table_Name;
                  

                  选择两个不同的表和带有id的映射

                  select * from Table_1 t1,Table2 t2 where t2.id=ti.id;
                  

                  【讨论】:

                    【解决方案10】:

                    从 user_tables 中选择 *;

                    描述表名;

                    【讨论】:

                    • 这对 SQL Anywhere 无效。
                    【解决方案11】:

                    select t.table_name, c.column_name, c.base_type_str, c.nulls from systabcol c key join systab t on t.table_id = c.table_id

                    http://dcx.sap.com/1200/en/dbreference_en12/syscolumn345.html

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2012-07-27
                      • 1970-01-01
                      • 1970-01-01
                      • 2021-09-14
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多