Saya mencoba dua metode untuk menampilkan kolom dengan nama tertentu:
INFORMATION_SCHEMA.COLUMNS
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME='SUPPLIER_NAME';
SYS.COLUMNS
SELECT * FROM SYS.COLUMNS WHERE NAME='SUPPLIER_NAME'
Mengapa kueri menampilkan output yang berbeda?
sql-server
Vinoth _S
sumber
sumber
INFORMATION_SCHEMA.COLUMNS
hanyalah pandangan atassys.columns
ituINNER JOIN
kesys.objects
dan membatasi ke objek jenis Tabel atau Tampilan. Dugaan saya adalah salah satu catatan Andasys.columns
dihilangkan dalam batasan ini.Jawaban:
Perbedaan antara
INFORMATION_SCHEMA.COLUMNS
dansys.columns
adalah jenis objek yang mereka liput.INFORMATION_SCHEMA.COLUMNS
terbatas pada tabel dan tampilan. Anda dapat melihat kode di belakangnya dengan melakukan ini:Jika Anda melihat bagian bawah di mana klausa Anda akan melihat
Di sinilah terbatas pada tabel dan tampilan saja.
Jika Anda kemudian melihat definisi sys.columns Anda akan melihat bahwa itu termasuk kolom untuk sejumlah objek lain:
Jalankan ini dan Anda akan dapat melihat apa objek tambahan itu dan apa jenisnya.
sumber