Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara mengatur dan mengindeks pada dua kolom variabel tabel yang dideklarasikan T-SQL?

Anda bisa buat indeks yang tidak berkerumun sebagai berikut.

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

Jika maksudnya adalah Col1, Col2 unik sendiri lalu hapus PK dari daftar kolom.

Meskipun muncul pada nilai nominal seolah-olah ini telah menambahkan kolom tambahan di (PK ) struktur indeks akan sama dengan membuat indeks tidak unik hanya pada Col1, Col2 pada #temp tabel.

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)

untuk indeks non clustered non unik SQL Server selalu menambahkan kunci CI ke kunci NCI secara implisit. Ini hanya menunjukkannya secara eksplisit.

Lihat Kalen Delaney Selengkapnya Kunci Indeks Nonclustered



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konversi 'datetime2' menjadi 'smalldatetime' di SQL Server (Contoh T-SQL)

  2. Bagaimana menemukan string di dalam seluruh database?

  3. Bagaimana cara saya menulis .Skip(1000).Take(100) LINQ dalam SQL murni?

  4. Mengonversi string ke int di linq ke entitas di database besar

  5. Perbaiki:"LOG CADANGAN tidak dapat dilakukan karena tidak ada cadangan basis data saat ini." di SQL Server/SQL Edge