sql >> Databáze >  >> RDS >> Sqlserver

Jak SQL Server určí pořadí sloupců, když provedete `SELECT *`?

Jsou v pořadí column_id ze systémového pohledu sys.columns .

Můžete to zkontrolovat:

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

UPRAVIT

Tohle je pro Demse. Měli byste testovat na větší tabulce, ale vypadá to, že používá pořadí definované v tabulce, nikoli index:

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. Vytvoření pohledu MySQL s automaticky se zvyšujícím sloupcem id

  2. get_result() nefunguje, i když je povoleno mysqlnd

  3. SQL Server - Simultánní vkládání do tabulky z více klientů - Check Limit a Block

  4. Konfigurace zdroje dat jboss 7 Oracle