Podemos usar transação em procedimento armazenado?
Podemos usar transação em procedimento armazenado?

Vídeo: Podemos usar transação em procedimento armazenado?

Vídeo: Podemos usar transação em procedimento armazenado?
Vídeo: MySQL - Procedimentos Armazenados (Stored Procedures) Básico - 34 2024, Abril
Anonim

Se nós tem mais de uma instrução SQL em execução no procedimento armazenado e nós deseja reverter quaisquer alterações feitas por qualquer uma das instruções SQL no caso de ocorrer um erro por causa de uma das instruções SQL, podemos usar a transação no procedimento armazenado.

Da mesma forma, os procedimentos armazenados são executados em uma transação?

Aninhado procedimentos armazenados estão executado no transação contexto do mais externo procedimento armazenado . Esta é a configuração padrão. Fornece o comportamento padrão descrito acima. Ou seja, todas as instruções SQL em um procedimento armazenado executar como um solteiro transação bloquear.

Além do acima, podemos usar commit no procedimento? Em geral, procedimentos não deveria comprometer-se . Se você comprometer-se dentro de um armazenado procedimento , você está limitando sua reutilização porque um chamador que deseja as alterações procedimento faz parte de uma transação maior não pode simplesmente chamar o procedimento diretamente.

A respeito disso, podemos usar transação na função SQL?

1 resposta. É por isso transações são desnecessários para sql -servidor funções . No entanto, você posso mudança transação nível de isolamento, por exemplo, você pode usar Dica NOLOCK para alcançar "leitura não confirmada" transação nível de isolamento e ler dados não confirmados de outros transações.

Podemos usar transações aninhadas em SQL se sim, como?

SQL O servidor realmente não suporta transações aninhadas . Há apenas um transação de uma vez. Este transação tem um básico transação aninhada contador, @@ TRANCOUNT. Cada começo consecutivo transação incrementos a contador por um, cada commit transação reduz em um.

Recomendado: