Transacción en script SQL Server
Publicado por Santiago (4 intervenciones) el 09/06/2020 15:00:45
Hola:
Tengo el siguiente "script", pero si lo ejecuto en MODO = 'R' no hace el Rollback y da un error de que no hay ninguna transacción abierta. ¿Podéis decirme qué hago mal? Gracias.
Tengo el siguiente "script", pero si lo ejecuto en MODO = 'R' no hace el Rollback y da un error de que no hay ninguna transacción abierta. ¿Podéis decirme qué hago mal? Gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
DECLARE @MODO CHAR(1),
@ID INT,@PRODUCTO VARCHAR(50),
@NOMBRE VARCHAR(20);
------------------------------ CONFIGURAR AQUÍ LOS VALORES
SET @MODO = 'R';
SET @ID = '61';
SET @PRODUCTO = 'Camiseta';
SET @NOMBRE = 'Camiseta de fútbol;
PRINT 'MODO DE EJECUCIÓN SELECCIONADO ' + @MODO;
-- SELECT DE VERIFICACIÓN.IF @MODO = 'V'
BEGINPRINT 'VERIFICANDO';
SELECT * FROM productos WHERE id = @ID ENDELSE BEGIN -- TRANSACCIÓNPRINT 'ABRIENDO TRANSACCIÓN';
BEGIN TRANSACTION t1; BEGINPRINT 'EJECUTANDO INSERT';
INSERT INTO productos (id, producto, nombre) VALUES (@ID, @PRODUCTO, @NOMBRE);PRINT 'EJECUTANDO SELECT';
SELECT * FROM productos WHERE id = @ID;IF @MODO = 'C'
BEGINPRINT 'EJECUTANDO COMMIT';
COMMIT TRAN t1; END ELSE BEGINPRINT 'EJECUTANDO ROLLBACK';
ROLLBACK TRAN t1; END END;ENDValora esta pregunta


0

