Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

W jaki sposób SQL Server określa kolejność kolumn, gdy wykonujesz `SELECT *`?

Są w kolejności column_id z widoku systemowego sys.columns .

Możesz to sprawdzić:

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

EDYTUJ

To jest dla Demsa. Powinieneś testować na większej tabeli, ale wygląda na to, że używa kolejności zdefiniowanej w tabeli, a nie indeksu:

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. Dowiedz się, jak przeprowadzać analizę produktów za pomocą wyszukiwania pełnotekstowego programu SQL Server. Część 2

  2. Jak zmienić kolumnę z wartości Null na Not Null w SQL Server

  3. Jak uniknąć błędu dzielenia przez zero w SQL?

  4. Serwer SQL 2008 - funkcje dostrajania wydajności do wstawiania dużej ilości danych

  5. Rozwiązania dla INSERT OR UPDATE w SQL Server