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

Làm thế nào để thiết lập và lập chỉ mục trên hai cột của biến bảng được khai báo T-SQL?

Bạn có thể tạo một chỉ mục không phân cụm như sau.

DECLARE @t TABLE (
  PK   INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
  Col1 INT,
  Col2 INT,
  UNIQUE (Col1, Col2, PK)) 

Nếu mục đích là Col1, Col2 là duy nhất, sau đó xóa PK từ danh sách cột.

Mặc dù nó xuất hiện ở mệnh giá như thể điều này đã thêm một cột bổ sung trong (PK ) cấu trúc chỉ mục sẽ giống như việc tạo chỉ mục không duy nhất chỉ trên Col1, Col2 trên #temp bảng.

CREATE TABLE #T  (
  PK   INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
  Col1 INT,
  Col2 INT) 

/*PK added in to end of key anyway*/  
CREATE NONCLUSTERED INDEX ix ON #T(Col1, Col2)

cho một chỉ mục không phân cụm không duy nhất SQL Server luôn thêm khóa CI vào khóa NCI một cách ngầm định. Điều này chỉ hiển thị nó một cách rõ ràng.

Xem Kalen Delaney Thông tin thêm về Các phím lập chỉ mục không phân biệ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. Cắt bớt tất cả các bảng trong Cơ sở dữ liệu trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 55

  2. Các cách khác nhau để giám sát máy chủ SQL luôn có sẵn nhóm

  3. Các giá trị của Linq to SQL DateTime là cục bộ (Loại =Không xác định) - Làm cách nào để biến nó thành UTC?

  4. Tại chỗ so với SaaS:Kiến trúc hệ thống giám sát cơ sở dữ liệu

  5. SQL Server 2008:CHỌN CẬP NHẬT