Ich möchte den Namen aller Spalten einer Tabelle abfragen. Wie das geht, habe ich gefunden in:
Aber ich muss wissen: Wie kann das in Microsoft SQL Server (in meinem Fall 2008) gemacht werden?
sql
sql-server
sql-server-2008
tsql
odiseh
quelle
quelle
SELECT * FROM my_table WHERE 1=0
SELECT TOP 0 * FROM my_table
sind weniger TastenanschlägeAntworten:
Sie können diese und viele weitere Informationen erhalten, indem Sie die Ansichten des Informationsschemas abfragen .
Diese Beispielabfrage:
Kann über alle diese DB-Objekte erstellt werden:
quelle
Nortwind.
...)SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'tableName';
das funktioniert bei mirTABLE_SCHEMA = '?' AND TABLE_NAME = '?'
da ich auf localhost bin und mehrere Tabellen mit demselben Namen, aber in verschiedenen Datenbanken habe.Sie können die gespeicherte Prozedur sp_columns verwenden, die Informationen zu allen Spalten für eine bestimmte Tabelle zurückgibt. Weitere Informationen finden Sie hier http://msdn.microsoft.com/en-us/library/ms176077.aspx
Sie können dies auch über eine SQL-Abfrage tun. So etwas sollte helfen:
Oder eine Variation wäre:
Dadurch werden alle Spalten aus allen Tabellen abgerufen, sortiert nach Tabellennamen und dann nach Spaltennamen.
quelle
Dies ist besser als von zu bekommen,
sys.columns
weil esDATA_TYPE
direkt zeigt .quelle
AND TABLE_SCHEMA = 'schemaName'
dieWHERE
Klausel hinzu.JOIN sys.types t on c.system_type_id = t.system_type_id
und hinzufügent.name
, um auch die Typen neben jedem Spaltennamen abzurufen.Sie können
sp_help
in SQL Server 2008 verwenden.Tastaturkürzel für den obigen Befehl: Wählen Sie den Tabellennamen aus (dh markieren Sie ihn) und drücken Sie ALT+ F1.
quelle
Mit dieser Abfrage erhalten Sie die Antwort:
quelle
Sie können diese Abfrage schreiben, um den Spaltennamen und alle Details abzurufen, ohne INFORMATION_SCHEMA in MySql zu verwenden:
quelle
quelle
TABLE_NAME
ist dein Tischquelle
quelle
Führen Sie einfach diesen Befehl aus
quelle
Dieser SO-Frage fehlt der folgende Ansatz:
quelle
Es wird überprüft , ob die angesichts der
table
ist Basistabelle .quelle
Sie können dies versuchen. Dies gibt alle Spaltennamen mit ihren jeweiligen Datentypen an.
quelle
Sie können diese Abfrage verwenden
quelle
quelle
Eine andere Option, die wohl intuitiver ist, ist:
Dadurch erhalten Sie alle Spaltennamen in einer einzigen Spalte. Wenn Sie sich für andere Metadaten interessieren, können Sie die SELECT STATEMENT TO ändern
SELECT *
.quelle
Die Antworten zusammenfassen
Ich kann viele verschiedene Antworten und Möglichkeiten sehen, dies zu tun, aber da ist das Problem und das ist das
objective
.Ja, das Ziel. Wenn Sie
only know
die Spaltennamen möchten, können Sie verwendenAber wenn Sie
use
diese Spalten irgendwo haben oder sie einfach sagen möchten, sind diemanipulate
obigen schnellen Abfragen nicht von Nutzen. Sie müssen verwendeneine weitere Möglichkeit, einige bestimmte Spalten zu kennen, in denen wir ähnliche Spalten benötigen
quelle
quelle
Einfach und erfordert keine Systemtabellen
quelle