Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để SQL Server xác định thứ tự của các cột khi bạn thực hiện lệnh `SELECT *`?

Chúng theo thứ tự column_id từ chế độ xem hệ thống sys.columns .

Bạn có thể kiểm tra nó bằng cách:

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

CHỈNH SỬA

Đây là dành cho Dems. Bạn nên kiểm tra trên một bảng lớn hơn, nhưng có vẻ như nó sử dụng thứ tự được xác định trong bảng, không phải chỉ mục:

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. Chuyển một biến vào một trình kích hoạt

  2. Cách tìm bản ghi trùng lặp bằng cách sử dụng mệnh đề Group by và Have trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 132

  3. Chèn nhanh bảng dữ liệu quan hệ (chuẩn hóa) vào cơ sở dữ liệu SQL Server 2008

  4. Truy vấn SQL như GROUP BY với điều kiện OR

  5. Trả lại ID được chèn lần cuối mà không cần sử dụng truy vấn thứ hai