Em nosso banco de dados existe uma grande tabela que mais ou menos se parece com isso:
CREATE TABLE dbo.production_data
(
pd_id BIGINT PRIMARY KEY,
serial NVARCHAR(16) NOT NULL UNIQUE,
...
);
mas agora o tamanho do campo serial ficou baixo, então eu quero alterá-lo para 32. A ferramenta de comparação de esquema do Visual Studio sugere fazer isso:
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);
Isso é realmente necessário? Ou mais como uma maneira ultra salva de fazer isso?
Além disso, ao recriar o índice exclusivo, minha tabela será bloqueada? Porque esse seria um grande problema (como a tabela possui 30 milhões de linhas e acho que a recriação do índice levará algum tempo), porque a próxima janela de manutenção será daqui a alguns meses. Quais são minhas alternativas?