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

Problema con Trigger

Estas en el tema de Problema con Trigger en el foro de SQL Server en Foros del Web. Hola! He creado un disparador que para que me inserte en una tabla una serie de datos cada vez que se me actualiza el valor ...
  #1 (permalink)  
Antiguo 12/01/2009, 10:28
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 4 meses
Puntos: 0
Problema con Trigger

Hola!

He creado un disparador que para que me inserte en una tabla una serie de datos cada vez que se me actualiza el valor de un campo, para detectar que ha habido una actualización en un campo lo compruebo de la siguiente manera:

if Update(Pagado)

El problema lo tengo cuando quiero actualizar el campo pagado de muchos registros, entonces me sale este error y no me deja hacer ningún cambio:

"[Microsoft][ODBC SQL Server Driver][SQL Server] La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =,!=,<,<=,>,>= o cuando se utiliza como expresión"

Como puedo puedo realizar el trigger con el fin de que pueda actualitzar el campo "Pagado" para varios registros de mi tabla?

Espero vuestra respuesta.

Muchas gracias!
  #2 (permalink)  
Antiguo 12/01/2009, 10:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Problema con Trigger

DICOTA

¿Ya has leido tu ayuda en linea sobre el concepto de TRIGGER?

Creo que no, existe una tabla "temporal" (por llamarle de alguna forma) que se crea durante la ejecucion del proceso de actualizacion (insert, update, delete), esta(s) tabla(s) contienen los registros a ser modificados, por tanto, creo que asumes que solo traes un solo registro en dicha tablas y pueden ser muchos.

Debes tomar eso en cuenta.
  #3 (permalink)  
Antiguo 13/01/2009, 01:44
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con Trigger

Gracias por tu respuesta.

Pero no acabo de entender lo que me dices, porque si se crea una tabla temporal como puedo acceder a ella para saber que registros esta tratando el trigger? Y porque me da el error que muestro en el primer mensaje?

Espero tu respuesta.

Perdonarme si mis preguntas són demasiado evidentes, soy novato en esto.
  #4 (permalink)  
Antiguo 13/01/2009, 14:44
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Problema con Trigger

Necesitaria ver la codificacion de tu trigger, pero en primera instanacia deberias leer un poco, solo un poco, sobre el CREATE TRIGGER:

http://technet.microsoft.com/es-es/l.../ms189799.aspx

Los desencadenadores DML usan las tablas lógicas (conceptuales) deleted e inserted. Son de estructura similar a la tabla en que se define el desencadenador, es decir, la tabla en que se intenta la acción del usuario. Las tablas deleted e inserted guardan los valores antiguos o nuevos de las filas que la acción del usuario puede cambiar. Por ejemplo, para recuperar todos los valores de la tabla deleted, utilice:

Copiar código
SELECT *
FROM deleted
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:16.