Saya ingin menanyakan nama semua kolom tabel. Saya menemukan cara melakukan ini di:
Tapi saya perlu tahu: bagaimana ini bisa dilakukan di Microsoft SQL Server (2008 dalam kasus saya)?
sql
sql-server
sql-server-2008
tsql
odiseh
sumber
sumber
SELECT * FROM my_table WHERE 1=0
SELECT TOP 0 * FROM my_table
kurang menekan tombolJawaban:
Anda dapat memperoleh informasi ini dan banyak lagi, lebih banyak lagi dengan menanyakan tampilan Skema Informasi .
Kueri sampel ini:
Dapat dibuat di atas semua objek DB ini:
sumber
Nortwind.
...)SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'tableName';
ini bekerja untuk sayaTABLE_SCHEMA = '?' AND TABLE_NAME = '?'
karena saya di localhost dan saya punya beberapa tabel dengan nama yang sama tetapi dalam database yang berbeda.Anda dapat menggunakan prosedur tersimpan sp_columns yang akan mengembalikan informasi yang berkaitan dengan semua kolom untuk tabel yang diberikan. Info lebih lanjut dapat ditemukan di sini http://msdn.microsoft.com/en-us/library/ms176077.aspx
Anda juga dapat melakukannya dengan kueri SQL. Beberapa hal seperti ini akan membantu:
Atau variasi akan menjadi:
Ini mendapatkan semua kolom dari semua tabel, diurutkan berdasarkan nama tabel dan kemudian pada nama kolom.
sumber
Ini lebih baik daripada mendapatkan dari
sys.columns
karena itu menunjukkanDATA_TYPE
secara langsung.sumber
AND TABLE_SCHEMA = 'schemaName'
dalamWHERE
klausa.JOIN sys.types t on c.system_type_id = t.system_type_id
dan menambahkant.name
pernyataan 'SELECT' untuk mendapatkan jenis di sebelah setiap nama kolom juga.Anda bisa menggunakan
sp_help
SQL Server 2008.Pintasan keyboard untuk perintah di atas: pilih nama tabel (mis. Sorot) dan tekan ALT+ F1.
sumber
Dengan menggunakan kueri ini, Anda mendapatkan jawabannya:
sumber
Anda dapat menulis kueri ini untuk mendapatkan nama kolom dan semua detail tanpa menggunakan INFORMATION_SCHEMA di MySql:
sumber
sumber
TABLE_NAME
adalah meja Andasumber
sumber
Jalankan saja perintah ini
sumber
Pertanyaan SO ini tidak memiliki pendekatan berikut:
sumber
Ini akan memeriksa apakah yang diberikan
table
adalah Base Table .sumber
Anda dapat mencoba ini. Ini memberikan semua nama kolom dengan tipe data masing-masing.
sumber
Anda dapat menggunakan kueri ini
sumber
sumber
Satu opsi lain yang bisa dibilang lebih intuitif adalah:
Ini memberi Anda semua nama kolom Anda dalam satu kolom. Jika Anda peduli dengan metadata lain, Anda dapat mengubah sunting PERNYATAAN SELECT menjadi
SELECT *
.sumber
Meringkas Jawaban
Saya dapat melihat berbagai jawaban dan cara untuk melakukan ini tetapi ada intinya dalam hal ini dan itu adalah
objective
.Ya, tujuannya. Jika Anda ingin
only know
nama kolom yang dapat Anda gunakanTetapi jika Anda ingin
use
kolom tersebut di suatu tempat atau hanya mengatakannyamanipulate
maka pertanyaan cepat di atas tidak akan berguna. Anda harus menggunakansatu lagi cara untuk mengetahui beberapa kolom tertentu di mana kita membutuhkan beberapa kolom serupa
sumber
sumber
Sederhana dan tidak memerlukan tabel sys
sumber