Ir para conteúdo

POWERED BY:

Arquivado

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

ThiagoP

uso de hints e locks de tabela

Recommended Posts

Galera, Seguinte, tô usando transação em diversas operações no BD. Ex.:BEGIN TRANSACTIONUpdate "tabela x" set "campo x= @variável y" where "condição tal"IF @@error <> 0 ROLLBACKELSECOMMITGOproblema é que após fazer o update não consigo dar um select e retornar para a aplicação um "ID" por exemplo... tudo dentro da transação....já saquei que corro o risco de dirty read´s e tudo mais...porém facilitaria muito a vida o uso dos tais hints...outro problema : em teste no query analyzer retorna erro ao usar hint!!!Alguém tem uma boa idéia para emprestar....hehehehAbraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

falai ThiagoP,

 

naum entendi muito bem, como você ta fazendo o select, você ta usando o (nolock)?

 

select "campo x" from "tabela x" (nolock) where "condição tal"

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim... tentei usar o hint (nolock) no fim do select, pois tento selecionar um campo da tabela que acabei de incluir com um insert.... Ficaria assim:INSERT into "Tabela Tal" ("campo")values(1)SELECT "campo" from "Tabela Tal" where "condição" (nolock)Tudo dentro de uma transação...Li vária coisas a respeito do READ UNCOMMITED e outros porém entendi que os hints serias mais adequados pois valeriam somente para aquele determinado select.... o ruim é que não consegui fazer funcionar ou fiz errado!!!obs.: No primeiro post usei o exemplo de um update, mas tentei os dois casos na realidade!!!Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais ta dando algum erro ou só não aparece o registro?pois qdo. você escreveu ali em cimaSELECT "campo" from "Tabela Tal" where "condição" (nolock)o nolock esta na posicao errada, ele tem q ser depois da tabelaSELECT "campo" from "Tabela Tal" (nolock) where "condição"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... Andei lendo muito sobre o assunto e simplesmente descobri que do jeito que quero fazer não vai funcionar... O problema não está no SQL e sim no ADO. Estou usando transação em ASP para comitar as operações do banco (que também estão com transação). Acontece que minha transação em ASP só pode ser colocada no fim da página, pois se houver algum erro de operação de banco preciso do rollback em todas as procedures executas na página. Logo estou numa sinuca de bico. Pelo jeito vou ter que abrir mão do uso da transação em ASP ou arrumar uma alternativa com mais acessos ao banco.... Valeu pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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