Transazione

lunedì 31 dicembre 2012 - 14.02
Tag Elenco Tags  SQL Server 2008 R2

robex2012 Profilo | Newbie

Salve,
Ho un problema con questa sp, e non avendo mai usato le transazioni, Vi chiedo un aiuto.
ALTER PROCEDURE [dbo].[sp_DuplicaUtensile]
(
@idGruppo int
)
AS
DECLARE @NewidGruppo int

SET NOCOUNT ON;

BEGIN TRANSACTION;

INSERT dbo.tGruppi (idPreventivo, idTipoGruppo)

SELECT idPreventivo, idTipoGruppo

FROM dbo.tGruppi WHERE idGruppo = @idGruppo;

SET @NewidGruppo = SCOPE_IDENTITY();

INSERT dbo.tTeste_Preventivate (idTipo,idGruppo,Nr_Testa)

SELECT idTipo,@NewidGruppo,Nr_Testa

FROM dbo.tTeste_Preventivate

WHERE idGruppo = @idGruppo; RETURN @NewidGruppo;

COMMIT TRANSACTION;

IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END

Le Insert funzionano ma ottengo questo messaggio:
Il numero di transazioni dopo L'esecuzione di EXECUTE indica un numero di istruzioni BEGIN e COMMIT non corrispondente.
Numero di transazioni precedente:0, numero di transazioni corrente: 1
PerchË?
se faccio una sp con una sola insert tutto funziona.
ho provato a mettere gi˘ l'istruzione in vari modi ma il risultato non cambia.
grazie

mi rispondo io:

...
COMMIT TRANSACTION;

IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
RETURN @NewidGruppo;
END
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5