Trigger Insert.

19/04/2005 - 18:07 por Pablo Salazar | Informe spam
Hola a todos.
como puedo hacer un trigger que se active cuando se inserta un registro en
una Tabla (X), la tabla tiene 4 campos, 3 se ingresan manual y 1 lo quiero
calcular y grabar cuando se active el trigger.


Por sus sugerencias
Gracias.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
19/04/2005 - 18:21 | Informe spam
Pablo,

Que tipo de calculo?. Por que no posteas la definicion de la tabla asi como
el calculo a realizar?


AMB

"Pablo Salazar" wrote:

Hola a todos.
como puedo hacer un trigger que se active cuando se inserta un registro en
una Tabla (X), la tabla tiene 4 campos, 3 se ingresan manual y 1 lo quiero
calcular y grabar cuando se active el trigger.


Por sus sugerencias
Gracias.



Respuesta Responder a este mensaje
#2 Pablo Salazar
19/04/2005 - 18:35 | Informe spam
La tabla tiene esto.

Compra(codigoarticulo,Fecha,cliente,UltimoPrecioCompra)

cuando yo inserte un registro de esta forma u otra. quiero que se calcule el
4 campo)

insert into compra(codigoarticulo,fecha,cliente)
values('1','2005-04-04','cl01')

lo que quiero es hacer es un trigger que calcule el 4 campo con el siguiente
valor

select top 1 precio from compras where codigoarticulo = 'valoringresado'

Gracias

"Alejandro Mesa" wrote in message
news:
Pablo,

Que tipo de calculo?. Por que no posteas la definicion de la tabla asi
como
el calculo a realizar?


AMB

"Pablo Salazar" wrote:

Hola a todos.
como puedo hacer un trigger que se active cuando se inserta un registro
en
una Tabla (X), la tabla tiene 4 campos, 3 se ingresan manual y 1 lo
quiero
calcular y grabar cuando se active el trigger.


Por sus sugerencias
Gracias.



Respuesta Responder a este mensaje
#3 Alejandro Mesa
19/04/2005 - 19:02 | Informe spam
Trata,

Vamos por paso. Tienes dos tablas, [compra] y [compras], correcto?. Quieres
almacenar en la columna [UltimoPrecioCompra], de la tabla [compra], el valor
de la columna [precio], de la tabla [compras], de la primera fila que
encuentre donde la columna [codigoarticulo] sea igual al valor de la columna
[codigoarticulo] en la tabla donde se esta insertando?

Ahora mi pregunta es como identificar el ultimo precio de un articulo
especifico en la tabla [compras]?


AMB

"Pablo Salazar" wrote:

La tabla tiene esto.

Compra(codigoarticulo,Fecha,cliente,UltimoPrecioCompra)

cuando yo inserte un registro de esta forma u otra. quiero que se calcule el
4 campo)

insert into compra(codigoarticulo,fecha,cliente)
values('1','2005-04-04','cl01')

lo que quiero es hacer es un trigger que calcule el 4 campo con el siguiente
valor

select top 1 precio from compras where codigoarticulo = 'valoringresado'

Gracias

"Alejandro Mesa" wrote in message
news:
> Pablo,
>
> Que tipo de calculo?. Por que no posteas la definicion de la tabla asi
> como
> el calculo a realizar?
>
>
> AMB
>
> "Pablo Salazar" wrote:
>
>> Hola a todos.
>> como puedo hacer un trigger que se active cuando se inserta un registro
>> en
>> una Tabla (X), la tabla tiene 4 campos, 3 se ingresan manual y 1 lo
>> quiero
>> calcular y grabar cuando se active el trigger.
>>
>>
>> Por sus sugerencias
>> Gracias.
>>
>>
>>



Respuesta Responder a este mensaje
#4 Pablo Salazar
19/04/2005 - 19:33 | Informe spam
Muchas Gracias Alejandro, Logre resolverlo utilizando el "After Insert",
despues de insertar el registro, se activa el trigger, de la tabla
"inserted" tomo el
codigo del producto lo busco en la tabla de compras, tomo el ultimo precio
de compras
y lo actualizo... Disculpa si te hice bolas, creo que lo que debi haber
puesto era pedidos y compras..

Siempre Muchas Gracias
Te mando el codigo para que lo mires, ami me funciono rebien.

CREATE TRIGGER [ActualizacionPrecioPor1] ON [dbo].[POR1]
after INSERT
AS
Declare @itemcode nvarchar(20)
Declare @Docentry int
Declare @Price real
Declare @Price1 real

select @Docentry = docentry,@itemcode = itemcode from inserted

select top 1 @Price = price from pch1 where itemcode = @itemcode
order by docdate desc

if @Price is not null
update por1 set u_ultPrec =@Price where docentry = @docentry and itemcode
= @itemcode


select @Price1 = sum(price*quantity)/sum(quantity) from pch1 where itemcode
=@itemcode
and (docdate >= (getdate()- 180))
group by itemcode


if @Price1 is not null
update por1 set u_ProPrec =@Price1 where docentry = @docentry and
itemcode = @itemcode



"Alejandro Mesa" wrote in message
news:
Trata,

Vamos por paso. Tienes dos tablas, [compra] y [compras], correcto?.
Quieres
almacenar en la columna [UltimoPrecioCompra], de la tabla [compra], el
valor
de la columna [precio], de la tabla [compras], de la primera fila que
encuentre donde la columna [codigoarticulo] sea igual al valor de la
columna
[codigoarticulo] en la tabla donde se esta insertando?

Ahora mi pregunta es como identificar el ultimo precio de un articulo
especifico en la tabla [compras]?


AMB

"Pablo Salazar" wrote:

La tabla tiene esto.

Compra(codigoarticulo,Fecha,cliente,UltimoPrecioCompra)

cuando yo inserte un registro de esta forma u otra. quiero que se calcule
el
4 campo)

insert into compra(codigoarticulo,fecha,cliente)
values('1','2005-04-04','cl01')

lo que quiero es hacer es un trigger que calcule el 4 campo con el
siguiente
valor

select top 1 precio from compras where codigoarticulo = 'valoringresado'

Gracias

"Alejandro Mesa" wrote in
message
news:
> Pablo,
>
> Que tipo de calculo?. Por que no posteas la definicion de la tabla asi
> como
> el calculo a realizar?
>
>
> AMB
>
> "Pablo Salazar" wrote:
>
>> Hola a todos.
>> como puedo hacer un trigger que se active cuando se inserta un
>> registro
>> en
>> una Tabla (X), la tabla tiene 4 campos, 3 se ingresan manual y 1 lo
>> quiero
>> calcular y grabar cuando se active el trigger.
>>
>>
>> Por sus sugerencias
>> Gracias.
>>
>>
>>



Respuesta Responder a este mensaje
#5 Alejandro Mesa
19/04/2005 - 20:31 | Informe spam
Pablo,

Que bueno que encontrastes una solucion. Que diferencia entre la informacion
que nos distes y la real. Ahora puedo dar respuesta a mis preguntas.

> Ahora mi pregunta es como identificar el ultimo precio de un articulo
> especifico en la tabla [compras]?



select top 1 @Price = price from pch1
where itemcode = @itemcode
order by docdate desc;

Una cosa quiero señalar y es que el trigger solo considera que en la tabla
[dbo].[POR1] se insertan los registros de uno en uno, o sea, que nunca se
hara un insert en masa, por lo que debes hacer este chequeo en el mismo
trigger para devolver un error en caso de que no sea asi, de lo contrario
solo procesara una sola fila de las insertadas.


AMB

"Pablo Salazar" wrote:

Muchas Gracias Alejandro, Logre resolverlo utilizando el "After Insert",
despues de insertar el registro, se activa el trigger, de la tabla
"inserted" tomo el
codigo del producto lo busco en la tabla de compras, tomo el ultimo precio
de compras
y lo actualizo... Disculpa si te hice bolas, creo que lo que debi haber
puesto era pedidos y compras..

Siempre Muchas Gracias
Te mando el codigo para que lo mires, ami me funciono rebien.

CREATE TRIGGER [ActualizacionPrecioPor1] ON [dbo].[POR1]
after INSERT
AS
Declare @itemcode nvarchar(20)
Declare @Docentry int
Declare @Price real
Declare @Price1 real

select @Docentry = docentry,@itemcode = itemcode from inserted

select top 1 @Price = price from pch1 where itemcode = @itemcode
order by docdate desc

if @Price is not null
update por1 set u_ultPrec =@Price where docentry = @docentry and itemcode
= @itemcode


select @Price1 = sum(price*quantity)/sum(quantity) from pch1 where itemcode
=@itemcode
and (docdate >= (getdate()- 180))
group by itemcode


if @Price1 is not null
update por1 set u_ProPrec =@Price1 where docentry = @docentry and
itemcode = @itemcode



"Alejandro Mesa" wrote in message
news:
> Trata,
>
> Vamos por paso. Tienes dos tablas, [compra] y [compras], correcto?.
> Quieres
> almacenar en la columna [UltimoPrecioCompra], de la tabla [compra], el
> valor
> de la columna [precio], de la tabla [compras], de la primera fila que
> encuentre donde la columna [codigoarticulo] sea igual al valor de la
> columna
> [codigoarticulo] en la tabla donde se esta insertando?
>
> Ahora mi pregunta es como identificar el ultimo precio de un articulo
> especifico en la tabla [compras]?
>
>
> AMB
>
> "Pablo Salazar" wrote:
>
>> La tabla tiene esto.
>>
>> Compra(codigoarticulo,Fecha,cliente,UltimoPrecioCompra)
>>
>> cuando yo inserte un registro de esta forma u otra. quiero que se calcule
>> el
>> 4 campo)
>>
>> insert into compra(codigoarticulo,fecha,cliente)
>> values('1','2005-04-04','cl01')
>>
>> lo que quiero es hacer es un trigger que calcule el 4 campo con el
>> siguiente
>> valor
>>
>> select top 1 precio from compras where codigoarticulo = 'valoringresado'
>>
>> Gracias
>>
>> "Alejandro Mesa" wrote in
>> message
>> news:
>> > Pablo,
>> >
>> > Que tipo de calculo?. Por que no posteas la definicion de la tabla asi
>> > como
>> > el calculo a realizar?
>> >
>> >
>> > AMB
>> >
>> > "Pablo Salazar" wrote:
>> >
>> >> Hola a todos.
>> >> como puedo hacer un trigger que se active cuando se inserta un
>> >> registro
>> >> en
>> >> una Tabla (X), la tabla tiene 4 campos, 3 se ingresan manual y 1 lo
>> >> quiero
>> >> calcular y grabar cuando se active el trigger.
>> >>
>> >>
>> >> Por sus sugerencias
>> >> Gracias.
>> >>
>> >>
>> >>
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida