Mam istniejącą tabelę z danymi. Właśnie dodałem nową kolumnę, ale nie mogę znaleźć sposobu dodania wyjątkowego ograniczenia do tej kolumny. Czy ktoś może doradzić? Kliknięcie prawym przyciskiem myszy i wybranie "sprawdź ograniczenia" nie było pomocne.Dodać ograniczenie unikalne w interfejsie GUI programu SQL Server 2008?
Odpowiedz
trzeba kliknąć prawym przyciskiem myszy w kreatorze tabel i odebrać Indexes/Keys
:
Następnie dialogowe wyskakuje i można dodać nowy indeks na liście wskaźników (po lewej stronie) oraz określić, że jest to unique
index:
Spróbuj kliknąć prawym przyciskiem myszy i wybierając Indexes/Keys
, dodając nowy indeks i ustawienie Is Unique
na Tak.
Czy prawym przyciskiem myszy w tabeli i wybrać projektanta indeksy przyciski/.
Indeksy/otworzy okno Keys. Kliknij przycisk Dodaj, aby utworzyć nowy indeks/klucz i wybierz kolumnę być unikalne w Kolumny nieruchomości:
We właściwościach nowej index/kluczu ustaw wpisz do unikatowego klucza:
i jest to kod wygenerowany dla uniq ue ograniczenie:
ALTER TABLE [dbo].[Table_1] ADD CONSTRAINT [IX_Table_1] UNIQUE NONCLUSTERED
(
[myUniqueColumn] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
Jeśli chcę utworzyć wyjątkowe ograniczenie przy użyciu kilku kolumn, to mogę dodać wszystkie kolumny, które chcę, do właściwości 'Kolumny' nowego indeksu/klucza? (np. Imię i nazwisko - może mieć duplikaty każdego z nich, ale nie oba)? – Ben
Tak. Po naciśnięciu przycisku "..." we właściwości Kolumny zostanie wyświetlone okno, w którym można wybrać wszystkie kolumny, a także określić kolejność kolumn w tym indeksie. A kombinacja wszystkich wybranych kolumn jest brana pod uwagę dla unikalności klucza, jak mówisz w swoim przykładzie. –
Wystarczy Right Click z którego kolumna trzeba dodać unikalny klucz od stolika i można wybrać Indexes/Keys
. Następnie możesz dodać lub usunąć kolumnę, dla której chcesz ustawić unikalny klucz:
To unikalny indeks, a nie wyjątkowe ograniczenie. Oba tworzą indeksy, ale istnieją między nimi różnice (patrz http://databases.about.com/od/sqlserver/a/unique.htm). Jeśli chcesz mieć ograniczenie UNIQUE, powinieneś wybrać Type = Unique Key. –
@ guillegr123: tak, masz rację - ale ty też się tym zajmujesz ..... w końcu oba podejścia unikają duplikatów, a na końcu oba podejścia dadzą unikalny indeks w SQL Server. Wolę korzystać z unikalnego indeksu, ponieważ pozwala on jawnie, w razie potrzeby, ustawić określone właściwości (np. Współczynnik wypełnienia), których unikalne ograniczenie nie pozwala mi ustawić. –