Istruzione SQL per stampare i nomi di tabella e i loro nomi di colonna

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE' 
ORDER BY TABLE_NAME ASC

Sto usando questo codice per stampare i nomi di tabella di un db. Quello che voglio fare è stampare il nome della tabella e il col nomi in ogni tabella. Posso fare questo nidificazione di una dichiarazione.

Questo codice viene eseguito su un Server di SQL Server in una finestra di query.

Ho provato questo

SELECT COL_NAME 
FROM 
    (SELECT TABLE_NAME 
     FROM INFORMATION_SCHEMA.TABLES 
     WHERE TABLE_TYPE = 'BASE TABLE' 
     ORDER BY TABLE_NAME ASC)

Tutte le idee?

SHOW TABLES e SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
+1 perché si downvote questo ragazzo, lui ha una domanda interessante, e ha mostrato quello che ha provato !
possibile duplicato di le colonne di una tabella di SQL SERVER
Grazie meda, mi è stato bloccato.

OriginaleL’autore EglCode | 2014-10-24

3 Replies
  1. 6

    Questo dovrebbe farlo:

    SELECT C.TABLE_NAME, C.COLUMN_NAME
    FROM INFORMATION_SCHEMA.COLUMNS C
    WHERE EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES T 
                  WHERE T.TABLE_TYPE='BASE TABLE' AND C.TABLE_NAME=T.TABLE_NAME)
    ORDER BY C.TABLE_NAME, C.COLUMN_NAME

    OriginaleL’autore Dave Cullum

  2. 2

    In Sqlserver 2005 INFORMATION_SCHEMA vista è stato introdotto per primo.

    Questi punti di vista sono principalmente creato per ottenere i metadati come nome della tabella,
    colonna nome, tipo di dati delle colonne etc. sulle tabelle, colonne, vista,
    domini etc.

    Ogni database contiene questi punti di vista. Se si desidera controllare ciò che succede dietro le quinte è possibile verificare la logica di questi punti di vista facendo appena sp_helptext. Come

    sp_helptext INFORMATION_SCHEMA.COLONNE

    Utilizzando punti di vista sopra si può ottenere il risultato desiderato. Si prega di controllare sotto query.

    SELECT T.TABLE_NAME,C.COLUMN_NAME,C.DATA_TYPE
        FROM INFORMATION_SCHEMA.COLUMNS C
        INNER JOIN INFORMATION_SCHEMA.TABLES T ON C.TABLE_NAME = T.TABLE_NAME
            AND C.TABLE_SCHEMA = T.TABLE_SCHEMA
        WHERE T.TABLE_TYPE = 'BASE TABLE'
    non ti.
    ehi @rene grazie per la guida. 🙂 aggiornato risposta. Spero possa aiutare qualcun altro in futuro.

    OriginaleL’autore Mukund

  3. 0

    Che Ms Sql-Server stai usando. con la versione 2008 provare la query riportata di seguito. Questo itemise nome di colonna e tabelle appartengono.

    `SELECT  c.name  AS 'ColumnName'
            ,t.name AS 'TableName'
    FROM        sys.columns c
    JOIN        sys.tables  t   ON c.object_id = t.object_id
    WHERE       c.name = c.name`
    ORDER BY    TableName, ColumnName;`

    OriginaleL’autore linkonabe

Lascia un commento