sql >> Databasteknik >  >> RDS >> Sqlserver

Hur bestämmer SQL Server ordningen på kolumnerna när du gör en `SELECT *`?

De är i ordningen column_id från systemvyn sys.columns .

Du kan kontrollera det genom att:

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

REDIGERA

Det här är för Dems. Du bör testa på en större tabell, men det ser ut som att den använder den ordning som definieras i tabellen, inte indexet:

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. Slumpmässigt värde för kolumnen DATETIME

  2. Hur man hittar medelvärdet för en numerisk kolumn i SQL

  3. PHP - använder STR_TO_DATE uppdatera datetime-kolumnen men den är uppdaterad tom post som 0000-00-00 00:00:00

  4. installera Oracle Instantclient på Mac OS/X utan att ställa in miljövariabler?