Trigger

08/12/2003 - 21:17 por Julio | Informe spam
Hola grupo quiero hacer un trigger para hacer un update de la siguiente
manera:

Tengo una tabla llamada 'requisiciones_compras' que tiene un campo llamado
RequisicionNumero
y tengo otra tabla llamada 'requisicionespordepartamento' que tiene un campo
llamado RequisitionNumber.
Lo que quiero con esto es que cuando yo le haga un update al campo
ordennuemro me actualize el campo RequisitionNumber
ya que ambos contienen la misma informacion, debido a que tengo un trigger
que me hace un insert del campo RequisicionNumero al campo RequisitionNumber
pero me esta faltando el update.

Pero esto no me sale.

create trigger Update_requisicion
on requisicionpordepartamento
for update

AS

update requisiciones_compras
set requisiciones_compras.requisicionnumero = (select
inserted.requisitionnumber
where requisiciones_compras.requisicionnumero = inserted.requisitionnumber)
from requisiciones_compras inner join inserted
on requisiciones_compras.requisicionnumero = inserted.requisitionnumber
 

Leer las respuestas

#1 Javier Loria
09/12/2003 - 01:22 | Informe spam
Hola Julio:
Eso que estas haciendo es innecesario, estas trabajando de mas, haciendo
mas lento los procesos en el servidor de SQL y el mantenimiento casi
imposible. Deberias seriamente pensar en normalizar y hacer una vista que
resuelva este problema.
Si siempre quieres hacerlo asi el codigo seria, y dependiendo de la
Llave Primaria:
=CREATE TRIGGER Update_Requisicion
ON RequisicionPorDepartamento
FOR UPDATE
AS
UPDATE Requisiciones_Compras
SET requisicionnumero=Inserted.RequisitionNumber
FROM Requisiciones_Compras JOIN Inserted
ON Requisiciones_Compras.LlavePrimaria=Inserted.LlavePrimaria
=
Si la Llave Primaria es RequisicionNumero, entonces el trigger se
descompone, porque no hay forma de unir la tabla deleted con la inserted.

Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


Julio escribio:
Hola grupo quiero hacer un trigger para hacer un update de la
siguiente manera:

Tengo una tabla llamada 'requisiciones_compras' que tiene un campo
llamado RequisicionNumero
y tengo otra tabla llamada 'requisicionespordepartamento' que tiene
un campo llamado RequisitionNumber.
Lo que quiero con esto es que cuando yo le haga un update al campo
ordennuemro me actualize el campo RequisitionNumber
ya que ambos contienen la misma informacion, debido a que tengo un
trigger que me hace un insert del campo RequisicionNumero al campo
RequisitionNumber pero me esta faltando el update.

Pero esto no me sale.

create trigger Update_requisicion
on requisicionpordepartamento
for update

AS

update requisiciones_compras
set requisiciones_compras.requisicionnumero = (select
inserted.requisitionnumber
where requisiciones_compras.requisicionnumero > inserted.requisitionnumber) from requisiciones_compras inner join
inserted
on requisiciones_compras.requisicionnumero > inserted.requisitionnumber

Preguntas similares