Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/01/2009, 17:25
Avatar de Danielfuzz
Danielfuzz
 
Fecha de Ingreso: septiembre-2007
Mensajes: 111
Antigüedad: 16 años, 7 meses
Puntos: 18
Respuesta: Hace un INSERT al ejecutarse un TRIGGER (SQL SERVER 2000)

Bueno despues de leer y leer por ahí, llegué a la conclusión de que se debe usar variables, esto significa que un pdf que me baje sobre triggers está mal, ya que en un ejemplo se muestra accediendo directamente al campo del campo insertado, es decir 'INSERTED.campo', caundo en realidad lo que hice fué crear una variable y luego asignar el valor de la siguiente manera:

Código:
declare @variable money
select @variable = Campo from INSERTED
Acá la resolución:

CREATE TRIGGER IN_VENTA ON Venta
FOR INSERT
AS

Código:
declare @s_d money
select @s_d = SaldoDolares from FlujoCaja where fechaHora = (select max(fechaHora) From FlujoCaja)
declare @s_b money
select @s_b = SaldoBolivianos from FlujoCaja where fechaHora = (select max(fechaHora) From FlujoCaja)
declare @in_f as datetime 
select @in_f = fecha from INSERTED
declare @in_cd money
select @in_cd = CobradoDolares from INSERTED
declare @in_cb money
select @in_cb = CobradoBolivianos from INSERTED
declare @in_ID int
select @in_ID = ID from INSERTED
declare @in_IDE int
select @in_IDE = ID_Encargado from INSERTED

INSERT INTO FlujoCaja (FechaHora, FlujoDolares, FlujoBolivianos, SaldoDolares, SaldoBolivianos, Concepto, CodigoVenta, ID_Encargado)  VALUES (@in_f, @in_cd, @in_cb, @s_d + @in_cd ,@s_b + @in_cb, 'Venta', @in_ID, @in_IDE)