sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan bestemmer SQL Server rækkefølgen af ​​kolonnerne, når du laver en `SELECT *`?

De er i rækkefølgen column_id fra systemvisningen sys.columns .

Du kan tjekke det ved at:

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

REDIGER

Dette er til Dems. Du bør teste på en større tabel, men det ser ud til, at den bruger den rækkefølge, der er defineret i tabellen, ikke indekset:

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. Tidsindstillede begivenheder med php/MySQL

  2. MySQL UUID primær nøgle - genereret af PHP eller af MySQL?

  3. MySQL exit-handler ignoreret

  4. Vis en tabel i en hver løkke med databaseværdier