Eu tenho uma tabela que está faltando uma coluna em sua restrição de chave primária. Em vez de editá-lo por meio do SQL Server, quero colocá-lo em um script para adicioná-lo como parte de nossos scripts de atualização.
Que sintaxe posso usar para fazer isso? Devo descartar e recriar a restrição de chave?
sql-server
Jason
fonte
fonte
Respostas:
Sim. A única maneira seria eliminar a restrição com uma tabela Alter e recriá-la.
fonte
alter table PatientsInfo drop constraint PK__Patients__1CBB51380A338187
está funcionando aquidb
.table
DROP PRIMARY KEY, ADD PRIMARY KEY (id1
,id2
);PRIMARY KEY CONSTRAINT
não pode ser alterado, você só pode abandoná-lo e criar novamente. Para grandes conjuntos de dados, pode causar um longo tempo de execução e, portanto, indisponibilidade da tabela.fonte
Em termos de desempenho, não há motivo para manter índices não agrupados durante isso, pois eles serão atualizados novamente ao serem descartados e criados. Se for um conjunto de big data, você deve considerar renomear a tabela (se possível, alguma configuração de segurança nela?), Recriar uma tabela vazia com as chaves corretas para migrar todos os dados para lá. Você deve ter certeza de que tem espaço suficiente para isso.
fonte
No meu caso, quero adicionar uma coluna a uma chave primária (coluna4). Usei este script para adicionar column4
fonte
você pode renomear objetos de restrição usando sp_rename (conforme descrito nesta resposta )
por exemplo:
fonte