Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como o SQL Server determina a ordem das colunas quando você faz um `SELECT *`?


Eles estão na ordem de column_id na visualização do sistema sys.columns .

Você pode verificar por:
SELECT column_id, name
FROM sys.columns
WHERE object_id = Object_id('MyTableName')
ORDER BY column_id

EDITAR

Isto é para os democratas. Você deve testar em uma tabela maior, mas parece que ela usa a ordem definida na tabela, não o índice:
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