Comma Separated List of all columns in the Database (Tablename | Column_names…)

后端 未结 3 1556
深忆病人
深忆病人 2021-02-03 10:30

In SQL Server, I would like see Table_Name and all the Columns associated with that Table_Name in a database. So the Output should look like this:

      TABLE_N         


        
3条回答
  •  迷失自我
    2021-02-03 11:22

    Select TABLE_SCHEMA, TABLE_NAME
        , Stuff(
            (
            Select ', ' + C.COLUMN_NAME
            From INFORMATION_SCHEMA.COLUMNS As C
            Where C.TABLE_SCHEMA = T.TABLE_SCHEMA
                And C.TABLE_NAME = T.TABLE_NAME
            Order By C.ORDINAL_POSITION
            For Xml Path('')
            ), 1, 2, '') As Columns
    From INFORMATION_SCHEMA.TABLES As T
    

    As mentioned in comments, the above will include views. If you want to exclude views you can do the following:

    Select T.TABLE_SCHEMA, T.TABLE_NAME
        , Stuff(
            (
            Select ', ' + C.COLUMN_NAME
            From INFORMATION_SCHEMA.COLUMNS As C
            Where C.TABLE_SCHEMA = T.TABLE_SCHEMA
                And C.TABLE_NAME = T.TABLE_NAME
            Order By C.ORDINAL_POSITION
            For Xml Path('')
            ), 1, 2, '') As Columns
    From INFORMATION_SCHEMA.TABLES As T
        Left Join INFORMATION_SCHEMA.VIEWS As V
            On V.TABLE_SCHEMA = T.TABLE_SCHEMA
                And V.TABLE_NAME = T.TABLE_NAME
    Where V.TABLE_NAME Is Null
    

提交回复
热议问题