Comment puis-je rendre une colonne int unique – sur une table existante avec des données dans – mais autoriser plusieurs zéros – dans SSMS.
Il y a beaucoup d'loggings dans la table maintenant – et ils ont tous la valeur NULL dans cette colonne maintenant.
J'ai vu des façons de le faire en utilisant un index filtré unique dans TSQL – et je peux voir des façons dans l'interface user de le faire sans autoriser NULLS.
Est-ce que ce n'est pas possible en utilisant l'interface graphique SSMS?
En passant, quelle est la meilleure façon de le faire en utilisant uniquement TSQL pur? Un index filtré unique?
Avec le code:
create unique nonclustered index uixf_mycol on dbo.t (col) where col is not null;
Dans SSMS:
filter
.
Vous pouvez créer une contrainte UNIQUE
sur la colonne.
CREATE TABLE Test ( P_Id int, CONSTRAINT uc_ID UNIQUE (P_Id) )