Nel nostro database esiste una grande tabella che più o meno è simile a questa:
CREATE TABLE dbo.production_data
(
pd_id BIGINT PRIMARY KEY,
serial NVARCHAR(16) NOT NULL UNIQUE,
...
);
ma ora la dimensione del campo seriale è diventata troppo bassa, quindi voglio cambiarlo in 32. Lo strumento di confronto dello schema di Visual Studio suggerisce di fare questo:
DROP INDEX ux_production_data_serial ON dbo.production_data;
GO
ALTER TABLE dbo.production_data ALTER COLUMN serial NVARCHAR(32) NOT NULL;
GO
CREATE INDEX ux_production_data_serial ON dbo.production_data(serial ASC);
È davvero necessario? O più come un modo ultra-salva per farlo?
Inoltre, ricreando l'indice univoco, la mia tabella verrà bloccata? Perché questo sarebbe un grosso problema (poiché la tabella ha 30 milioni di righe e immagino che ricreare l'indice richiederà un po 'di tempo), perché la prossima finestra di manutenzione è tra qualche mese in futuro. Quali sono le mie alternative?