Zmiana pola int na unikalne

0

Mam tabelę, w której jedna z kolumn jest typu int. W jaki sposób przy pomocy składni sql (alter table ?) sprawić aby server 'pilnował' aby liczby wpisywane ręcznie się nie powtarzały?
Dodatkowo pole NULL powinno być dopuszczalne. Tabela zawiera kilka tysięcy rekordów.

0

ADD UNIQUE INDEX

0
 CREATE unique INDEX kod_ind
ON cennik (kod)

A jak poradzić sobie z istniejącymi polami null?

"The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo.cennik' and the index name 'kod_ind'. The duplicate key value is (<NULL>).
The statement has been terminated."

0

Jeśli kolumna jest unikalna, to nie możesz mieć więcej niż jednego nulla. Tak działa MSSQL.
Jeśli chcesz mieć wartość null albo unikalną, to musisz to zapewnić inaczej.

0

Dzięki. Temat wyczerpany. Do zamknięcia.

0

Od wersji 2008 możesz uzyc where przy tworzeniu indeku

CREATE UNIQUE NONCLUSTERED INDEX kod_ind
ON cennik(kod)
WHERE kod IS NOT NULL;

1 użytkowników online, w tym zalogowanych: 0, gości: 1