(sem descartar chaves estrangeiras)
Migrei um banco de dados SQL Server CE para SQL Server 2012, no entanto, a integridade referencial foi imposta por meio de restrições de chave exclusivas nas INT
colunas de identidade substitutas.
por exemplo
create table Table1
(
Table1ID INT NOT NULL,
CONSTRAINT U_000001 UNIQUE(Table1ID)
);
CREATE TABLE Table2
(
Table2ID INT NOT NULL,
Table1ID INT NOT NULL,
CONSTRAINT FK_T2_T1 FOREIGN KEY(Table1ID) REFERENCES Table1(Table1ID)
);
Gostaria de converter as restrições de chave exclusivas em chaves primárias, por motivos de diagramação ERD e ORM.
Eu adicionei as chaves primárias, mas não posso descartar o UKC, porque o RI de colunas dependentes já está "integrado" no UKC, apesar do PK alternativo agora estar disponível.
ALTER TABLE Table1 ADD CONSTRAINT PK_Table1 PRIMARY KEY (Table1ID);
ALTER TABLE Table1 DROP CONSTRAINT U_000001;
falha com
Msg 3725, Nível 16, Estado 0, Linha 1
A restrição 'U_000001' está sendo referenciada pela tabela 'Table2', restrição de chave estrangeira 'FK_T2_T1'.
Portanto, minha pergunta é: existe alguma maneira de alterar as verificações de RI nas chaves estrangeiras para usar o PRIMARY KEY
, e não o UKC, como é o caso atualmente, sem ter que descartar as chaves estrangeiras nas tabelas de referência primeiro?
Eu preparei um pequeno SQL Fiddle aqui .