none
Problemas para efetuar um insert com chave primaria RRS feed

  • Pergunta

  • Pessoal boa noite 

    Estou com um seguinte problema, um registro foi excluído da base de forma errada e preciso inserir novamente esse registro,

    então faço o inserte so que preciso deixar o registro igual como era antes, mas uma das colunas e uma chave primaria e mesmo eu removendo a chave primaria nao consigo após inserir o registro fazer um update da coluna da a seguinte msg

    Mensagem 8102, Nível 16, Estado 1, Linha 5
    Cannot update identity column 'nCdLotePropostas'.

    Horário de conclusão: 2022-11-30T18:12:40.0854690-03:00

    quarta-feira, 30 de novembro de 2022 21:21

Todas as Respostas

  • Fala dr.Khan, tudo certo?

    Você precisa "remover" o Identity e não somente a primary key. Coloquei remover entre aspas porque isso não é possível diretamente, pra isso você precisa:

    1 - Criar uma nova coluna nCdLotePropostas_New

    2 - Transferir/Popular essa nova coluna com os dados desejados

    3 - Dropar a coluna nCdLotePropostas

    4 - Renomear a coluna nCdLotePropostas_New para nCdLotePropostas e aplicar todas as propriedades de primary key, indentity e outras, caso existam na coluna atual.

    Abraço!


    Natan

    quinta-feira, 1 de dezembro de 2022 10:37
  • Bom dia,

    dr.khan, acho que você pode utilizar o comando set identity_insert para inserir a linha com o valor desejado:

    https://learn.microsoft.com/pt-br/sql/t-sql/statements/set-identity-insert-transact-sql?view=sql-server-ver16

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Sugerido como Resposta NatanSilva quinta-feira, 1 de dezembro de 2022 12:51
    quinta-feira, 1 de dezembro de 2022 12:02
  • Rapaiz, Gapimex espetacular como sempre! 

    Natan

    quinta-feira, 1 de dezembro de 2022 12:51
  • Valeu Natan!

    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 1 de dezembro de 2022 14:22
  • Pessoal bom dia.

    tentei desligar SET IDENTITY_INSERT tabela ON; mas mesmo assim deu erros com outros campos que sao FK

    erros com essas criticas:

    Mensagem 547, Nível 16, Estado 0, Linha 8
    The INSERT statement conflicted with the FOREIGN KEY constraint "FK_P_PRG_LO_PROP_P_PRG_LO". The conflict occurred in database "SIMULADOs", table "dbo.LOTE", column 'nCdLote'.
    The statement has been terminated.

    porque nessa tabela existe ums 4 chaves FKs

    sexta-feira, 2 de dezembro de 2022 00:43
  • Bom dia,

    Esse é outro problema, você tem que preencher as colunas em questão com valores existentes nas tabelas com as quais existem relacionamentos.


    Assinatura: http://www.imoveisemexposicao.com.br

    segunda-feira, 5 de dezembro de 2022 13:15
  • dr.khan,

    De qua forma você pretende fazer com que os dados sejam repassados nas colunas que estão a princípio definidas com PK e FK?


    Pedro Antonio Galvão Junior [MSc. | MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    segunda-feira, 12 de dezembro de 2022 23:47
  • Olá Dr. Khan,
     
    Alguma novidade sobre a consulta feita?
     
    A resposta fornecida foi útil?
     
    Obrigado por usar os fóruns do MSDN.
     
    Pablo Garcia
    ____________________________

    Por favor, lembre-se de "Marcar respostas" para respostas que resolveram seu problema, é uma maneira comum de reconhecer aqueles que ajudaram e torna mais fácil para outros visitantes encontrarem a solução mais tarde.
    terça-feira, 24 de janeiro de 2023 16:36