Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana SQL Server menentukan urutan kolom saat Anda melakukan `SELECT *`?

Mereka berada dalam urutan column_id dari tampilan sistem sys.columns .

Anda dapat memeriksanya dengan:

SELECT column_id, name
FROM sys.columns
WHERE object_id = Object_id('MyTableName')
ORDER BY column_id

EDIT

Ini untuk Dem. Anda harus menguji pada tabel yang lebih besar, tetapi sepertinya tabel tersebut menggunakan urutan yang ditentukan dalam tabel, bukan indeks:

CREATE TABLE #T (cola int, colb int, colc int)

INSERT INTO #T
VALUES
(1,2,3),
(2,3,4),
(4,5,6)

SELECT * FROM #T

CREATE INDEX ix_test ON #T (colb, colc, cola)

SELECT * FROM #t
WHERE colb > 0

DROP TABLE #T


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nodejs mssql masukkan dengan parameter

  2. perlu tanggal dalam format yyyy-mm di mssql

  3. Faktor-faktor apa yang dapat menyebabkan Kompilasi Ulang Prosedur Tersimpan di SQL Server?

  4. SQL Server 2008 Baris Sisipkan dan Perbarui stempel waktu

  5. Mitos Kinerja SQL Server yang Berbahaya dan Menyebar