Wie kann ich Spaltennamen aus einer Tabelle in SQL Server abrufen?

Ich würde gerne den Namen aller Spalten einer Tabelle abfragen. Ich habe gefunden, wie man das macht in:

Aber ich muss wissen: Wie kann das in Microsoft SQL Server (in meinem Fall 2008) gemacht werden?

Lösung

Sie können diese Informationen und noch viel mehr erhalten, indem Sie die Information Schema Views abfragen.

Diese Beispielabfrage:

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'

kann über alle diese DB-Objekte durchgeführt werden:

Kommentare (6)

Sie können die gespeicherte Prozedur sp_columns verwenden, die Informationen über alle Spalten für eine bestimmte Tabelle zurückgeben würde. Weitere Informationen finden Sie hier http://msdn.microsoft.com/en-us/library/ms176077.aspx

Sie können dies auch mit einer SQL-Abfrage tun. Etwas wie dies sollte helfen:

SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName') 

Oder eine Variation wäre:

SELECT   o.Name, c.Name
FROM     sys.columns c 
         JOIN sys.objects o ON o.object_id = c.object_id 
WHERE    o.type = 'U' 
ORDER BY o.Name, c.Name

Dies liefert alle Spalten aus allen Tabellen, geordnet nach Tabellenname und dann nach Spaltenname.

Kommentare (0)

Mit dieser Abfrage erhalten Sie die Antwort:

select Column_name 
from Information_schema.columns 
where Table_name like 'table name'
Kommentare (0)