【问题标题】:how to get table structure with column name in a single row?如何在单行中获取具有列名的表结构?
【发布时间】:2014-02-07 11:45:25
【问题描述】:

谁能帮我查询单行中的表名、列名、列数据类型、isprimary 等。

例如: 我的 E_Id、E_Name、E_City 列的员工表输出应如下所示


TabName ColumnName 数据类型 isprimary Columnname 数据类型 isprimary Columnname 数据类型

Employee - E_Id - int - S - E_Name - varchar - N - E_City - varchar


【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    您可以使用 INFORMATION_SCHEMA 系统视图来获取任何表的此信息。 下面是一个例子:

    SELECT 
        c.TABLE_NAME, 
        c.COLUMN_NAME, 
        c.DATA_TYPE, 
        CASE WHEN tc.CONSTRAINT_NAME IS NOT NULL THEN 1 ELSE 0 END AS IsPrimary
    FROM INFORMATION_SCHEMA.COLUMNS c 
        LEFT JOIN (
            INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu 
            JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc 
            ON tc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME 
                  AND tc.CONSTRAINT_SCHEMA = ccu.CONSTRAINT_SCHEMA 
                  AND tc.CONSTRAINT_CATALOG = ccu.CONSTRAINT_CATALOG
              AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
        )
        ON ccu.COLUMN_NAME = c.COLUMN_NAME 
          AND ccu.TABLE_NAME = c.TABLE_NAME 
          AND ccu.TABLE_SCHEMA = c.TABLE_SCHEMA 
          AND ccu.TABLE_CATALOG = c.TABLE_CATALOG
    WHERE c.TABLE_NAME = 'Employee'
    

    【讨论】:

      【解决方案2】:

      您可以从以下获取表架构,

      SELECT *
      FROM INFORMATION_SCHEMA.COLUMNS
      WHERE TABLE_NAME = N'TABLENAME';
      GO
      

      (但输出格式不是你想要的)

      来源:http://technet.microsoft.com/en-us/library/ms186778.aspx

      【讨论】:

        猜你喜欢
        • 2010-10-02
        • 1970-01-01
        • 1970-01-01
        • 2019-02-22
        • 2020-05-06
        • 1970-01-01
        • 2019-07-14
        • 2019-10-31
        • 2021-10-22
        相关资源
        最近更新 更多