2010-04-20 11 views
9

Jaka jest różnica między następującymi dwoma stwierdzeniami?Jaka jest różnica między ograniczeniem unikatowym a unikalnym indeksem?

alter table [dbo].[Demo] add constraint [UC_Demo_Code] unique ([Code]) 
go 
create unique nonclustered index [UK_Demo_Code] on [dbo].[Demo] ([NB_Code]) 
go 

Czy wiązanie ma indeks ułatwiający wymuszenie unikalności lub czy skanowanie tabeli będzie wykonywane na każdej wstawce/aktualizacji?

+0

Zapoznaj się z http://dba.stackexchange.com/a/55139/6548, aby uzyskać dokładną odpowiedź. – Rory

Odpowiedz

9

Efekt "logiczny" jest taki sam - do tabeli można załadować tylko wartości unikalne. (Warto wspomnieć, że jeśli kolumna jest pusta, można wstawić tylko jeden wiersz z wartością NULL.)

Fizyczny efekt jest taki sam - na stole zbudowany jest unikatowy indeks. Może być klastrowany lub nieklastrowany.

Jedyna rzeczywista różnica tkwi w metadanych, w informacjach opisujących bazę danych przechowywanych w tabelach systemowych. Pierwszy sposób jest zapisywany wewnętrznie jako indeks, a drugi - jako ograniczenie - nawet jeśli efekty netto są identyczne. Co oznacza, że ​​ostatecznie jedyną różnicą jest kod wymagany do jego utworzenia ORAZ do zmiany go w przyszłości.

(Odnosi się to do wersji 7.0 7.0 od 2005 r. I byłbym bardzo zaskoczony, gdyby zmienił ją w 2008 r.).

0

Przepraszam za moją pierwszą niepoprawną odpowiedź. Unikalne ograniczenie jest identyczne z unikalnym indeksem. Pod okładkami tworzy indeks.

0

Możesz sprawdzić Unique Constraints and Unique Indexes, aby porównać je.

W artykule stwierdzono, że nie ma praktycznej różnicy między ograniczeniem unikatowym a unikalnym indeksem, poza faktem, że ograniczenie unikalne jest również wymienione jako obiekt wiązania w bazie danych. Ponieważ unikalne ograniczenie nie może zostać wyłączone, posiadanie statusu ograniczenia nie daje wyjątkowego ograniczenia żadnemu dodatkowemu zachowaniu poza unikalnym indeksem. Istnieje jednak kilka opcji tworzenia indeksu, które nie są dostępne dla polecenia ALTER TABLE, które tworzy wyjątkowe ograniczenie.

Powiązane problemy