Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come creare un vincolo univoco solo sulla parte data di un datetime?

Bene, in SQL Server 2008, c'è un nuovo tipo di dati chiamato "DATE":puoi usare quella colonna e creare un indice su di essa.

Ovviamente potresti anche aggiungere una colonna calcolata di tipo "DATE" alla tua tabella e semplicemente riempire la parte della data della colonna DATETIME in quella colonna calcolata, renderla PERSISTED e indicizzarla. Dovrebbe funzionare bene!

Qualcosa del genere:

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

CREATE UNIQUE INDEX UX_Entries ON Entries(DateOnly, Slug)

Marco