Join com View de outro servidor SQL
Pessoal,
Possuo uma view que efetua um select em um servidor SQL diferente de onde ela foi criada. Quando utilizo um begin transaction para efetuar um join entre uma tabela e esta view o SQL retorna uma mensagem de erro dizendo que a Transação está sendo utilizada por outra Sessão.
Alguém tem idéia porque não roda este select quando possuo controle de transação ?
Muito Obrigado,
Pedro
Possuo uma view que efetua um select em um servidor SQL diferente de onde ela foi criada. Quando utilizo um begin transaction para efetuar um join entre uma tabela e esta view o SQL retorna uma mensagem de erro dizendo que a Transação está sendo utilizada por outra Sessão.
Alguém tem idéia porque não roda este select quando possuo controle de transação ?
Muito Obrigado,
Pedro
Pedro Moriyama
Curtidas 0
Respostas
Rodrigo Costa
29/01/2004
Você está usando linked server ?
GOSTEI 0
Pedro Moriyama
29/01/2004
Rodrigo,
Estou usando linked server sim, cheguei a dar uma olhada no MSDN e ela informa que :
Loopback linked servers cannot be used in a distributed transaction. Attempting a distributed query against a loopback linked server from within a distributed transaction causes an error:
Msg: 3910 Level: 16 State: 1
[Microsoft][ODBC SQL Server Driver][SQL Server]Transaction context in use by another session.
Que é justamente o que está ocorrendo comigo.
Obrigado,
Pedro
Estou usando linked server sim, cheguei a dar uma olhada no MSDN e ela informa que :
Loopback linked servers cannot be used in a distributed transaction. Attempting a distributed query against a loopback linked server from within a distributed transaction causes an error:
Msg: 3910 Level: 16 State: 1
[Microsoft][ODBC SQL Server Driver][SQL Server]Transaction context in use by another session.
Que é justamente o que está ocorrendo comigo.
Obrigado,
Pedro
GOSTEI 0
Rodrigo Costa
29/01/2004
Já tenteo apenas fazer um join sem begin transaction ?
GOSTEI 0
Pedro Moriyama
29/01/2004
Na verdade quando eu não utilizo o Begin Transaction funciona.
Só que eu preciso ter um controle de transações porque farei Update e Insert na base de acordo com as informações deste join.
Acho que a única coisa que posso fazer é inserir o resultado do join em uma tabela temporária e à partir dela efetuar os insert´s e update´s com controle transacional.
Só que eu preciso ter um controle de transações porque farei Update e Insert na base de acordo com as informações deste join.
Acho que a única coisa que posso fazer é inserir o resultado do join em uma tabela temporária e à partir dela efetuar os insert´s e update´s com controle transacional.
GOSTEI 0
Rodrigo Costa
29/01/2004
É, acho que é a melhor solução.
GOSTEI 0
Pedro Moriyama
29/01/2004
Acho que não tem outro jeito, segundo o MSDN não tem como mesmo, ele pede para separar as operações pq o SQL não comporta isto.
Muito Obrigado Rodrigo !!
[]´s
Pedro
Muito Obrigado Rodrigo !!
[]´s
Pedro
GOSTEI 0
Rodrigo Costa
29/01/2004
Disponha !
GOSTEI 0