Bagaimana saya bisa mendapatkan nama-nama kolom dari tabel di SQL Server?

Saya ingin query nama semua kolom dari sebuah tabel. Saya menemukan cara untuk melakukan hal ini di:

Tapi aku perlu tahu: bagaimana hal ini dapat dilakukan dalam Microsoft SQL Server (tahun 2008 dalam kasus saya)?

Mengomentari pertanyaan (3)
Larutan

Anda bisa mendapatkan informasi ini dan banyak lagi dengan query Informasi Skema views.

Ini contoh query:

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

Dapat dibuat dari semua benda DB:

Komentar (6)

Anda dapat menggunakan prosedur yang tersimpan sp_columns yang akan kembali informasi yang berkaitan dengan semua kolom untuk tabel tertentu. Info lebih lanjut dapat ditemukan di sini http://msdn.microsoft.com/en-us/library/ms176077.aspx

Anda juga dapat melakukannya dengan query SQL. Beberapa hal yang seperti ini akan membantu:

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

Atau variasi akan sama:

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

Ini akan semua kolom dari tabel, yang diperintahkan oleh nama tabel dan kemudian pada kolom nama.

Komentar (0)
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

Ini lebih baik daripada mendapatkan dari sys.kolom karena hal itu menunjukkan DATA_TYPE ini diatas.

Komentar (3)

Anda dapat menggunakan sp_help di SQL Server 2008.

sp_help ;

Keyboard shortcut untuk perintah di atas: pilih nama tabel (saya.e sorot) dan tekan ALT+F1.

Komentar (2)

Dengan menggunakan query ini anda mendapatkan jawabannya:

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

Anda dapat menulis query ini untuk mendapatkan nama kolom dan semua detail tanpa menggunakan INFORMATION_SCHEMA di MySql :

SHOW COLUMNS FROM database_Name.table_name;
Komentar (4)
--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
Komentar (0)
SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')

TABLE_NAME adalah meja anda

Komentar (0)
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
Komentar (0)

Ini JADI pertanyaan adalah hilang pendekatan berikut :

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

Hanya menjalankan perintah ini

EXEC sp_columns 'Your Table Name'
Komentar (1)

Anda dapat mencoba ini.Ini memberikan semua nama-nama kolom dengan masing-masing tipe data.

desc <TABLE NAME> ;
Komentar (2)

Ini akan memeriksa apakah diberikan meja adalah Base Table.

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'
Komentar (0)

anda dapat menggunakan query ini

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
Komentar (0)
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
Komentar (0)

Salah satu pilihan lain yang bisa dibilang lebih intuitif adalah:

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

Ini memberi anda semua nama kolom dalam satu kolom. Jika anda peduli tentang metadata lainnya, anda dapat mengubah mengedit PERNYATAAN PILIH SELECT *.

Komentar (0)
SELECT TOP (0) [toID]
      ,[sourceID]
      ,[name]
      ,[address]
  FROM [ReportDatabase].[Ticket].[To]

Sederhana dan tidak memerlukan sys tabel

Komentar (0)
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'
Komentar (2)