Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как SQL Server определя реда на колоните, когато направите `SELECT *`?

Те са в реда на column_id от системния изглед sys.columns .

Можете да го проверите от:

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

РЕДАКТИРАНЕ

Това е за демократите. Трябва да тествате върху по-голяма таблица, но изглежда, че тя използва реда, определен в таблицата, а не индекса:

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. Как да анализирате дейността на една база данни в SQL Server

  2. Не може да се свърже от Classic ASP към SQL Server 2008 R2 с помощта на SQL Native Client (Windows 7 - IIS7)

  3. SQL заявка за получаване на набора от резултати само в две колони

  4. SQL Server:INNER JOIN след UNION води до бавно хеш съвпадение (обобщен)

  5. Най-добрият начин за съхраняване на голям низ в база данни на SQL Server?