desencadenador

11/11/2003 - 22:08 por Tolo | Informe spam
hola,

he creado un desencadenador y en el necesito llamar a una funcion pasándole
por parámetro el valor de un campo del registro q he modificado, es correcto
hacer:

CREATE TRIGGER Control_stock_linea ON dbo.T_linies
FOR INSERT, UPDATE
AS

declare @document int

select @document=fk_document from inserted

exec f_mifuncion @document
 

Leer las respuestas

#1 Javier Loria
11/11/2003 - 22:43 | Informe spam
Hola Tolo:
Te diria que en principio no es correcto por varias razones.
a) Los triggers en SQL se disparan 1 vez por bloque de registros
insertados, modificados o borrados. Que ocurre en tu trigger si se inserta
mas de una fila? cual sera el valor de Document>
b) Las funciones en SQL no se executan, sino que se usan dentro de un
SELECT, UPDATE, DELETE o INSERT.
Si lo que deseas es que tu funcion realize alguna accion que modifique
la BD seria mejor que usaran un Procedimiento Almacenado.
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.
Tolo escribio:
hola,

he creado un desencadenador y en el necesito llamar a una funcion
pasándole por parámetro el valor de un campo del registro q he
modificado, es correcto hacer:

CREATE TRIGGER Control_stock_linea ON dbo.T_linies
FOR INSERT, UPDATE
AS

declare @document int

select @document=fk_document from inserted

exec f_mifuncion @document

Preguntas similares