sql >> Databáze >  >> RDS >> Sqlserver

Jak nastavit a indexovat na dvou sloupcích T-SQL deklarované proměnné tabulky?

Můžete vytvořte index bez clusterů následovně.

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

Pokud je záměrem, že Col1, Col2 jsou samy o sobě jedinečné, pak odstraňte PK ze seznamu sloupců.

Ačkoli to vypadá na nominální hodnotu, jako by to přidalo další sloupec v (PK ) struktura indexu bude stejná jako při vytváření nejedinečného indexu pouze na Col1, Col2 na #temp tabulka.

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)

pro nejedinečný index bez clusterů SQL Server vždy stejně implicitně přidá klíč CI do klíče NCI. To to jen explicitně ukazuje.

Viz Kalen Delaney Více o Neklastrované indexové klíče



  1. Monitorovat změny v MySQL tabulce v programu C#?

  2. Záznam pořadí pro tabulky bez indexů

  3. Získejte vygenerované uuid po vložení php

  4. Jak přidat uživatelskou skupinu Active Directory jako přihlášení na SQL Server