Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment créer une contrainte unique uniquement sur la partie date d'un datetime?

Eh bien, dans SQL Server 2008, il existe un nouveau type de données appelé "DATE" - vous pouvez utiliser cette colonne et créer un index dessus.

Vous pouvez bien sûr également ajouter une colonne calculée de type "DATE" à votre table et simplement remplir la partie date de la colonne DATETIME dans cette colonne calculée, la rendre PERSISTED et l'indexer. Cela devrait très bien fonctionner !

Quelque chose comme ça :

ALTER TABLE dbo.Entries
   ADD DateOnly as CAST(CompositionDate AS DATE) PERSISTED

CREATE UNIQUE INDEX UX_Entries ON Entries(DateOnly, Slug)

Marc