Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedrohfk

Chave primária e Estrangeira

Recommended Posts

Estou usando o banco de dados de exemplo [NorthWind] Link: https://northwinddatabase.codeplex.com/

Dentro dele tem 2 tabelas dbo.Employees e dbo.Orders.

Dentro da tabela dbo.Orders existe uma chave estrangeira ligada a chave primária da tabela dbo.Employees que é a chave primária [EmployeeID].

Quando eu tento executar a query de deletar os dados de uma coluna dá erro de conflito.

  Cmd = new SqlCommand("delete from Employees where EmployeeID=@v1", Con);

               Cmd.Parameters.AddWithValue("@v1", EmployeeID);
               

               Cmd.ExecuteNonQuery();

           }
           catch (Exception ex)
           {
               
               throw new Exception ("Erro ao deletar o cliente:" + ex.Message);
           }

aparece a seguinte msg:

Erro ao deletar o cliente:The DELETE statement conflicted with the REFERENCE constraint "FK_Orders_Employees". The conflict occurred in database "Northwind", table "dbo.Orders", column 'EmployeeID'.
The statement has been terminated.


Alguma solução para resolver isso:

usando aqui ?

  Cmd = new SqlCommand("delete from Employees where EmployeeID=@v1", Con);

ABRAÇO

Compartilhar este post


Link para o post
Compartilhar em outros sites

https://technet.microsoft.com/en-us/library/ms186973(v=sql.105).aspx

 

 

Existem vários tipos de ações que são feitas no ON DELETE de um registro.

A tabela no caso deve estar com a opção NO ACTION.

É preciso saber todavia antes de dar uma solução qual a Regra de Negócio ao se deletar um funcionário que tenha uma ordem, daí se pode pensar a solução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por FabianoSouza
      Preciso corrigir o erro "Somente uma expressão pode ser especificada na lista de seleção quando a subconsulta não é introduzida com EXISTS." da minha consulta.
      SELECT TA.titulo AS 'Trilha' , (SELECT CAST(ROUND((Comportamental * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Comportamental ,CAST(ROUND((Técnico * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Técnico FROM ( SELECT SUM(CASE WHEN dbo.tabB.enfoque = '1' THEN 1 ELSE 0 END) AS Comportamental, SUM(CASE WHEN dbo.tabB.enfoque = '2' THEN 1 ELSE 0 END) AS Técnico, COUNT(*) AS Total FROM dbo.tabB ) tab ) FROM dbo.tabA AS TA Nessa consulta, preciso trazer o título (da tabA) e o resultado de um cálculo feito na subconsulta, nos campos Comportamental e Técnico.
    • Por Descomplica Consultoria
      Oi Pessoal, preciso de ajuda com um portfolio academico
    • Por 4Unknow
      Bom dia comunidade Imasters.

      Venho aqui tratar de um problema dúvida que estou tendo com um layout que estou tentando usar o formulário php dele.
      Quando clico em enviar ele me enviar para um arquivo .php  (assets/vendor/simple-forms/sendmail.php)

      Ele não envia o e-mail, acredito que deveria aparecer uma mensagem que o contato foi enviado corretamente.
      Vou deixar os arquivos aqui em anexo quem puder me ajudar nessa, ficaria muito grato.
       
      Link Website (wetransfer.com)
    • Por Dcdbbvb
      Faça um código que deverá ter uma matriz de qualquer tamanho(Você define o tamanho) no qual o usuário irá digitar os números que serão armazenados na matriz. Construa uma função que deverá somar todos os números digitados. No final o programa mostrará a matriz e o valor total da somatória.
       
      por favorrrr alguém me ajuda
    • Por lotthaus
      Alguém poderia fazer essa atividade para eu ajudar um amigo ?

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.