sql >> データベース >  >> RDS >> Sqlserver

データベース内のすべての列のカンマ区切りリスト (テーブル名 | 列名...)

    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
    

    コメントで述べたように、上記にはビューが含まれます。ビューを除外したい場合は、次のことができます:

    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
    


    1. 正しいMySQL接続文字列を形成する方法は?

    2. ETL ミッションにアプローチするには?

    3. mysqlで日時フィールドにインデックスを付けるのは良い考えですか?

    4. 閉じるのに時間がかかりすぎる場合、接続プールから接続を強制的に閉じるにはどうすればよいですか?