SQL Server - Transacción en script SQL Server

 
Vista:
Imágen de perfil de Santiago
Val: 6
Ha disminuido su posición en 29 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

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.

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'
    BEGIN
        PRINT 'VERIFICANDO';
        SELECT *
          FROM productos
	     WHERE id = @ID
	END
ELSE
	BEGIN
		-- TRANSACCIÓN
		PRINT 'ABRIENDO TRANSACCIÓN';
		BEGIN TRANSACTION t1;
			BEGIN
				PRINT 'EJECUTANDO INSERT';
				INSERT INTO productos (id, producto, nombre)
				VALUES (@ID, @PRODUCTO, @NOMBRE);
				PRINT 'EJECUTANDO SELECT';
				SELECT *
				  FROM productos
				 WHERE id = @ID;
		IF @MODO = 'C'
			BEGIN
				PRINT 'EJECUTANDO COMMIT';
				COMMIT TRAN t1;
			END
		ELSE
			BEGIN
				PRINT 'EJECUTANDO ROLLBACK';
				ROLLBACK TRAN t1;
			END
	END;
END
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Transacción en script SQL Server

Publicado por Isaias (4558 intervenciones) el 09/06/2020 16:34:24
Supongo que es SQL Server y para empezar el COLOR ROJO te dice que hay un problema en tu codigo, ¿donde esta el error?

SET @NOMBRE = 'Camiseta de fútbol;

Te hace falta cerrar con comilla simple el SET del valor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Santiago
Val: 6
Ha disminuido su posición en 29 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Transacción en script SQL Server

Publicado por Santiago (4 intervenciones) el 09/06/2020 17:03:21
Bueno, a veces se mete la pata de la manera más tonta. Soy nuevo con SQL Server.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Transacción en script SQL Server

Publicado por Isaias (4558 intervenciones) el 09/06/2020 23:12:51
Don't worry, aprenderas con golpes en la pared o bien, te podemos ayudar, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar