【问题标题】:Query to get the list of tables and the number of columns查询获取表列表和列数
【发布时间】:2010-12-07 05:15:28
【问题描述】:

是否有任何查询可以让我获得表列表以及本地服务器上选定数据库的每个表中的列数。

如果有任何想法,请转发...

【问题讨论】:

    标签: c# sql sql-server sql-server-2005 tsql


    【解决方案1】:

    用途:

      SELECT t.table_name,
             COUNT(*)
        FROM INFORMATION_SCHEMA.TABLES t
        JOIN INFORMATION_SCHEMA.COLUMNS c ON c.table_name = t.table_name
       WHERE t.table_catalog = 'your_database'
         AND t.table_schema = 'your_schema'
    GROUP BY t.table_name
    

    参考

    【讨论】:

      【解决方案2】:
      select TABLE_NAME, COUNT(*) 
      from information_schema.columns
      group by TABLE_NAME
      

      【讨论】:

      • 如果您发布代码或 XML,在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮 (101 010) 以很好地格式化和语法高亮!
      【解决方案3】:
      SELECT s.name as tablename, COUNT(*) as columns 
      from sys.tables s 
      inner join information_schema.columns i on s.name = i.TABLE_NAME  
      group by s.name
      

      【讨论】:

      • 如果您发布代码或 XML,在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮 (101 010) 以很好地格式化和语法高亮!
      • 您查询sys.tables 以获取表名似乎很奇怪,但是您不使用sys.columns 作为列名.....我建议EITHER 使用 SQL Server 特定的 sys.* 目录视图, 使用 ANSI 标准 INFORMATION_SCHEMA 视图 - 但不要开始混合这两个.....
      猜你喜欢
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多