it-swarm.com.de

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

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 (2008 in meinem Fall) gemacht werden?

618
odiseh

Sie erhalten diese Informationen und vieles mehr, indem Sie die Informationsschema-Ansichten abfragen.

Diese Beispielabfrage:

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

Kann über all diese DB-Objekte erstellt werden:

748
anon

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. Einige Dinge wie diese sollten 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

Dadurch werden alle Spalten aus allen Tabellen abgerufen, sortiert nach Tabellenname und dann nach Spaltenname.

185
Arnkrishn
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

Dies ist besser, als von sys.columns abzurufen, da DATA_TYPE direkt angezeigt wird.

141
Limin

Sie können sp_help in SQL Server 2008 verwenden.

sp_help <table_name>;

Tastaturkürzel für den obigen Befehl: Wählen Sie den Tabellennamen (dh markieren Sie ihn) und drücken Sie ALT+F1.

52
mr_eclair

Mit dieser Abfrage erhalten Sie die Antwort:

select Column_name 
from Information_schema.columns 
where Table_name like 'table name'
43
KuldipMCA

Sie können diese Abfrage schreiben, um den Spaltennamen und alle Details abzurufen, ohne INFORMATION_SCHEMA in MySql zu verwenden:

SHOW COLUMNS FROM database_Name.table_name;
35
Sachin Parse
--This is another variation used to document a large database for conversion (Edited to --remove static columns)

SELECT o.Name                   as Table_Name
     , c.Name                   as Field_Name
     , t.Name                   as Data_Type
     , t.length                 as Length_Size
     , t.prec                   as Precision_
FROM syscolumns c 
     INNER JOIN sysobjects o ON o.id = c.id
     LEFT JOIN  systypes t on t.xtype = c.xtype  
WHERE o.type = 'U' 
ORDER BY o.Name, c.Name

--In the left join, c.type is replaced by c.xtype to get varchar types
26
Doc
SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')

TABLE_NAME ist dein Tisch

20
bstricks
SELECT column_name, data_type, character_maximum_length, table_name,ordinal_position, is_nullable 
FROM information_schema.COLUMNS WHERE table_name LIKE 'YOUR_TABLE_NAME'
ORDER BY ordinal_position
16
Petko Petkov

Bei dieser SO Frage fehlt der folgende Ansatz:

-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')
12
NeverHopeless

Führen Sie einfach diesen Befehl aus

EXEC sp_columns 'Your Table Name'
11
Hardeep Singh

Sie können dies versuchen. Dies gibt alle Spaltennamen mit ihren jeweiligen Datentypen an.

desc <TABLE NAME> ;
11
ishaan arora

Es wird geprüft, ob das gegebene tableBasistabelle ist.

SELECT 
    T.TABLE_NAME AS 'TABLE NAME',
    C.COLUMN_NAME AS 'COLUMN NAME'
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME=C.TABLE_NAME
    WHERE   T.TABLE_TYPE='BASE TABLE'
            AND T.TABLE_NAME LIKE 'Your Table Name'
10
Luv

sie können diese Abfrage verwenden

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
6
reza akhlaghi
SELECT c.Name 
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.object_id = OBJECT_ID('TABLE_NAME')
ORDER BY c.Name

Eine andere Option, die wohl intuitiver ist, ist:

SELECT [name] 
FROM sys.columns 
WHERE object_id = OBJECT_ID('[yourSchemaType].[yourTableName]') 

Dies gibt Ihnen alle Ihre Spaltennamen in einer einzigen Spalte. Wenn Sie sich für andere Metadaten interessieren, können Sie die SELECT-Anweisung in SELECT * ändern.

4
Samuel Nde
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'
1
onavascuez