Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] trigger me marca error en inserted

Estas en el tema de trigger me marca error en inserted en el foro de SQL Server en Foros del Web. Hola a todos!! Bien. Quiero hacer un trigger (es la primera vez :P) que al momento de actualizar una tabla haga una consulta e inserte ...
  #1 (permalink)  
Antiguo 08/10/2014, 08:33
S76
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 6 meses
Puntos: 0
trigger me marca error en inserted

Hola a todos!!
Bien. Quiero hacer un trigger (es la primera vez :P) que al momento de actualizar una tabla haga una consulta e inserte en otra, lo que quiero es que tome el valos que le ingrese para hacer la consulta, he leido que con inserted toma ese valor pero me marca un error, me dice que "el prefijo de la colimna INSETRTED no coincide con un nombre de la tabla o un alias usado en la consulta" porque pasa eso? Estoy en sql server 2000.
O como puedo tomar el valor que ingreso?
Muchas gracias a todos :)
  #2 (permalink)  
Antiguo 08/10/2014, 08:43
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: trigger me marca error en inserted

como estas usando el inserted???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 08/10/2014, 08:47
S76
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: trigger me marca error en inserted

para probar mi trigger solo estoy haciendo esto mira.

Código SQL:
Ver original
  1. CREATE TRIGGER pruebando
  2. ON solicitud_notas
  3. FOR UPDATE
  4. AS
  5. BEGIN
  6. IF(UPDATE(numnota))
  7. BEGIN
  8. DECLARE @numnota VARCHAR(30)
  9. SET @numnota=INSERTED.numnota
  10. SELECT @numnota
  11. END
  12. END

Solo para que me muestre, segun yo, el dato que actualice
  #4 (permalink)  
Antiguo 08/10/2014, 09:00
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: trigger me marca error en inserted

¿Un SELECT dentro de un trigger?, no se si funcione...
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 08/10/2014, 09:01
S76
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: trigger me marca error en inserted

y poruqe si le pongo un valor a la variable si lo hace?
  #6 (permalink)  
Antiguo 08/10/2014, 09:04
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: trigger me marca error en inserted

Primero, porque para poner un valor a una variable mediante un SELECT se hace asi:


SELECT @MyVariable = MyColumna FROM MyTabla Where MyFiltro

Y tu lo tienes diferente, ¿me explico?

En cuanto a lo del SELECT, ¿Quién atendería dicho SELECT a nivel cliente?

Debes entender que en la tabla INSERTED, puedes traer 1 registro o MILLONES de registros, ¿cierto?
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 08/10/2014, 09:05
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: trigger me marca error en inserted

Código SQL:
Ver original
  1. CREATE TRIGGER pruebando
  2. ON solicitud_notas
  3. FOR UPDATE
  4. AS
  5. BEGIN
  6. IF(UPDATE(numnota))
  7. BEGIN
  8. DECLARE @numnota VARCHAR(30)
  9. SET @numnota=numnota FROM inserted
  10. SELECT @numnota
  11. END
  12. END

inserted y deleted son una tabla mas tienes que especificar eso en el from....

Y amigo iislas el select en el trigger si funciona :P nada mas que como mencionas habria que ponerle un where al inserted jejejejeje

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 08/10/2014, 09:12
S76
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: trigger me marca error en inserted

entonces si estoy muy perdido, lo que quiero es que cuando actualice la tabla solicitud factura me haga una consulta con ese mismo numero de factura que se actualizo a otra tabla y con los datos que obtengo insertar en oootra tabla :/ ya no se si se pueda hacer así..

suponiendo que en la tabla uno tenga esto

solicitud_factura
numnota
N08329

actualizo a: N08319
entonces ese N08319 quiero usarlo para buscar en otra tabla y sacar una fecha
suponiendo que me arroje 20140909 ahora esa nota N08319 y esa fecha 20140909 ingresarlas a otra tabla :/..
No pense que fuera tanto rollo, ya no se si se pueda hacer asi!!
  #9 (permalink)  
Antiguo 08/10/2014, 09:19
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: trigger me marca error en inserted

si se puede tendrias que jugar con las tablas deleted e inserted(deleted lo viejo inserted lo nuevo), y supongamos que solo se hace el update de un registro a la vez


Código SQL:
Ver original
  1. CREATE TRIGGER pruebando
  2. ON solicitud_notas
  3. FOR UPDATE
  4. AS
  5. BEGIN
  6. IF(UPDATE(numnota))
  7. BEGIN
  8. DECLARE @numnota VARCHAR(30)
  9. DECLARE @fecha datetime
  10. SELECT @numnota=numnota FROM inserted
  11. SELECT @fecha=fecha FROM otra_tabla WHERE num_nota=@numnota
  12. INSERT INTO nueva_tabla VALUES (@numnota,@fecha)
  13. END
  14. END

sencillo :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 08/10/2014 a las 09:41
  #10 (permalink)  
Antiguo 08/10/2014, 09:23
S76
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: trigger me marca error en inserted

me marca error en donde esta el inserted, me dice "sintaxis incorrecta cerca de la palabra clave from"
  #11 (permalink)  
Antiguo 08/10/2014, 09:42
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: trigger me marca error en inserted

error mi, en lugar de set es select, prueba con select
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 08/10/2014, 09:52
S76
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: trigger me marca error en inserted

oooowww!! Funciona!! :D.. Muchas gracias Libra.. Eres muy bueno!! o yo soy muy malo? o ambas? no lo se pero muchas gracias :D
  #13 (permalink)  
Antiguo 08/10/2014, 10:00
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: trigger me marca error en inserted

Cita:
Iniciado por S76 Ver Mensaje
oooowww!! Funciona!! :D.. Muchas gracias Libra.. Eres muy bueno!! o yo soy muy malo? o ambas? no lo se pero muchas gracias :D
lo dejamos en que te falta expertise :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #14 (permalink)  
Antiguo 09/10/2014, 09:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: trigger me marca error en inserted

Yo soy muy necio y siempre que encuentre gente tratando de "programar la lógica del negocio" con los triggers

Los TRIGGERS, fueron creados para cuidar la parte del DRI, esto que desea hacer, debería estar plasmado en un STORE PROCEDURE.

Pero como dice el dicho, al cliente, lo que pida.
__________________
MCTS Isaias Islas
  #15 (permalink)  
Antiguo 09/10/2014, 10:03
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: trigger me marca error en inserted

pues asi es amigo al cliente lo que pida
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: marca, server, sql, tabla, trigger, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:20.