SQL - Ayuda Script SQL Trigger

   
Vista:

Ayuda Script SQL Trigger

Hola, solicitud su apoyo para resolver una cuestión que tengo, sucede que necesito establecer un trigger dentro de una tabla que se desencadene al select.
Primero tomo los valores de la tabla inserted que necesito y los meto en variables internas, despues hago la comparacion, pero sucede que necesito meter un UPDATE dentro del resultado de un CASE que me actualice otra tabla, ya busque y busque donde estaría el error que me genera puesto que no me deja compilarlo. Espero me puedan ayudar, les dejo el script. 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
ALTER TRIGGER apertura_de_bulto
ON MOVPROD
AFTER INSERT
AS
BEGIN
	DECLARE @tienda AS VARCHAR
	DECLARE @producto AS VARCHAR
	DECLARE	@tipomov AS VARCHAR(3)
 
SET @tienda = (SELECT TIENDA FROM inserted)
SET @producto = (SELECT PRODUCTO FROM inserted)
SET @tipomov = (SELECT TIPOMOV FROM inserted)
 
IF @tipomov = '11'
	BEGIN
		SELECT CASE(@producto)
			WHEN 'DCARP25KG'
				THEN
					UPDATE EXIST
					SET EXISTIENDA = EXISTIENDA + 25
					WHERE PRODUCTO = 'DCARP'
			WHEN 'DCARG25KG'
				THEN
					UPDATE EXIST
					SET EXISTIENDA = EXISTIENDA + 25
					WHERE PRODUCTO = 'DCARG'
			WHEN 'DCCRP25KG'
				THEN
					UPDATE EXIST
					SET EXISTIENDA = EXISTIENDA + 25
					WHERE PRODUCTO = 'DCCRP'
	END
ELSE
	BEGIN
	UPDATE EXIST
	SET EXISTIENDA = EXISTIENDA + '1'
	WHERE PRODUCTO = 'MA24'
	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

Ayuda Script SQL Trigger

Publicado por Isaias (690 intervenciones) el 14/05/2014 01:24:01
Ningún script de SQL Server se COMPILA, todos son interpretados (hasta 2014, que ya se pueden compilar y dejar en memoria)

¿Cuál es el error?
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

Ayuda Script SQL Trigger

Publicado por Emilio yoshi88mx@hotmail.com (2 intervenciones) el 15/05/2014 00:08:56
Hola, gracias por tu ayuda. El mensaje que me da es el siguiente:
Msg 156, Level 15, State 1, Procedure apertura_de_bulto, Line 19
Sintaxis incorrecta cerca de la palabra clave 'UPDATE'.
Msg 156, Level 15, State 1, Procedure apertura_de_bulto, Line 22
Sintaxis incorrecta cerca de la palabra clave 'WHEN'.
Msg 156, Level 15, State 1, Procedure apertura_de_bulto, Line 27
Sintaxis incorrecta cerca de la palabra clave 'WHEN'.
Gracias de antemano
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

Ayuda Script SQL Trigger

Publicado por Isaias (690 intervenciones) el 16/05/2014 20:04:02
No utilices CASE

IF @tipomov = '11'
BEGIN
IF @producto = 'DCARP25KG'
BEGIN
UPDATE EXIST
SET EXISTIENDA = EXISTIENDA + 25
WHERE PRODUCTO = 'DCARP'
END
...................................CONTINUA EL if

END
ELSE
BEGIN
UPDATE EXIST
SET EXISTIENDA = EXISTIENDA + '1'
WHERE PRODUCTO = 'MA24'
END
END
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