locked
"Remote tables are not updatable" RRS feed

  • Pergunta

  • Caros,

     

    Estou trabalhando em um sistema que trabalha com vários sistemas remotos através de linked server e dentro dessas procedures trabalho muito com cursores.

     

    Em meio a execução das procedure a mensagem abaixo é exibida:

    "Remote tables are not updatable. Updatable keyset-driven cursors on remote tables require a transaction with the REPEATABLE_READ or SERIALIZABLE isolation level spanning the cursor."

     

    Isso não causa erro na execução das delas, mas gostaria de saber o que signigica.

     

    Abs.

    segunda-feira, 17 de dezembro de 2007 12:32

Todas as Respostas

  • Anselmo,

     

    Esta mensagem de erro esta alertando que tabelas remotas não podem ser atualizadas!!!

     

    Você esta utilizando cursor neste acesso remoto?

     

    Outra consideração importante esta relacionada com o nível de isolamento de transações que esta sendo utilizada dentro do cursor!!!

    segunda-feira, 17 de dezembro de 2007 13:05
    Moderador
  • Bom Dia Anselmo,

     

    Essa é mais uma das mensagens que o MSDTC manda que às vezes não tem nada a ver com o problema real. Certifique-se de que todas as tabelas que sofrem UPDATE ou DELETE no Linked Server tem chaves primárias e utilize a diretiva SET XACT_ABORT ON antes de iniciar uma transação que envolva Linked Servers

     

    [ ]s,

     

    Gustavo

     

    segunda-feira, 17 de dezembro de 2007 14:20
  • Anselmo, na realidade o problema é com o driver OLEDB, que neste caso para transações remotas precisam que você inicia a transação com SET TRANSACTION ISOLATION LEVEL REPEATABLE READ OR SERIALIZABLE, pois é necessário garantir que no momento da atualização não existe mais ninguém alterando os registros que estão sendo manipulados.

     

    Coloque no início da sua transação SET TRANSACTION ISOLATION LEVEL e também BEGIN DISTRIBUTED TRANSACTION, isso permite você garantir que em caso de falha o MSDTC possa realizar o Rollback em todos os envolvidos na transação.

     

    Qualquer dúvida, retorne.

     

    Abraços,

     

    Rodrigo Fernandes

    segunda-feira, 17 de dezembro de 2007 14:24