Como posso importar dados usando SSIS de servidores SQL ao usar restrições de chave estrangeira?

3

Estou tentando configurar um banco de dados vivo de formulário de importação para nosso banco de dados de desenvolvimento.

Eu estou tentando fazer isso usando o SSIS, mas a importação está falhando por causa de restrições.

Por exemplo Eu tenho as seguintes tabelas:

  • Clientes
  • Produtos
  • OrderLines
  • Pedidos

Importar clientes e produtos é bom, porque eles não dependem de nada. Mas ao importar OrderLines, ele falha porque o Order ainda não foi criado.

Como altero a ordem de como o SSIS importa tabelas?

Ou talvez eu não deva usar restrições de chave estrangeira?

    
por Thomas Jespersen 19.10.2009 / 14:47

2 respostas

4

desabilite ou remova as restrições de chave estrangeira antes da importação de dados & em seguida, habilite ou adicione-os após a importação por exemplo. remover / adicionar

--drop
alter table t1  DROP CONSTRAINT fk_1
--add
alter table t1 WITH CHECK add constraint fk_1 foreign key (fk)
references t2 (i)

desativar / ativar

--disable
alter table t1 NOCHECK CONSTRAINT fk_1
--enable
alter table t1 WITH CHECK CHECK CONSTRAINT fk_1 

O WITH CHECK é importante, caso contrário, o SQL Server não verificará os dados & não confia nos dados

    
por 19.10.2009 / 15:03
1
  1. Importe na seguinte ordem

    1. Clientes
    2. Produtos
    3. Pedidos
    4. OrderLines

Chaves estrangeiras em uma tabela são chaves primárias em outra tabela. Exemplo: tentando inserir OrderLines sem pedidos (número do pedido), os produtos (número do produto) não funcionarão.

Você também pode seguir a ideia @Nick Kavadias, mas isso pode causar a anulação das regras de negócios (embora possa ser detectada quando você tentar reativar as restrições) tendo registros órfãos.

    
por 19.10.2009 / 15:32