Triggers

25/02/2004 - 15:34 por Sergio | Informe spam
Hola amigos, necesito ayuda con un trigger tengo la siguiente situacion de
ejmplo :
Por cada ves que hago un insert:

insert into usuarios(id_usuario,nombre,nivel,contraseña)
values(55,'hola',8,'123456')

Deseo que se ejecute el sigt. trigger:

CREATE TRIGGER prueba1 ON dbo.usuarios
FOR INSERT
AS
select * from asientodiario_cab where codempresa = @codempresa

pero el trigger necesita del parametro @codempresa que le mando desde la
aplicacion, como podria pasar ese parametro para que se ejecute el trigger,
y desde donde lo pasaria.

Gracias
 

Leer las respuestas

#1 Javier Loria
25/02/2004 - 13:02 | Informe spam
Hola Sergio:
Los Triggers son un tipo especial de procedimiento almacenado que se
dispara cuando se realizan modificaciones (INSERT, DELETE y UPDATE) a una
TABLA. La intencion del Trigger es que sea "Transparente" para la
aplicacion, la aplicacion NO "sabe" que existe y por supuesto no lo invoca,
simplemente se cambian los datos y el Trigger se ejecuta.
Si quieres enviarle parametros, entonces necesitas procedimientos
almacenados. En tu codigo cambia CREATE TRIGGER por CREATE PROC o CREATE
PROCEDURE. Para pasar parametros a un procedimiento entre el nombre y el AS
entre parentisis listas los parametros (@Nombre Tipo, @Nombre Tipo) Busca en
los Books On Line mas informacion sobre opciones que tiene.
Para invocarlo desde VB.NET probablemente quieres usas un DATASET (si es
que vas a manenter en memoria la consulta) en cuyo caso, tomas del TOOLBOX,
en la pestana de Data, seleccionas un SQLDataAdapter, y lo configuras (clic
derecho), seleccionas la conexion y luego seleccionas procedimientos
almacenados existentes.
Por ultimo antes de ejecutarlos debes asignar el valor del parametro
algo como:
SQLDataAdapter.SelectCommand.Parameters("@Parametro").Value=.Valor, luego
haces el Fill del SQLDataAdapter.
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.


Sergio escribio:
Hola amigos, necesito ayuda con un trigger tengo la siguiente
situacion de ejmplo :
Por cada ves que hago un insert:

insert into usuarios(id_usuario,nombre,nivel,contraseña)
values(55,'hola',8,'123456')

Deseo que se ejecute el sigt. trigger:

CREATE TRIGGER prueba1 ON dbo.usuarios
FOR INSERT
AS
select * from asientodiario_cab where codempresa = @codempresa

pero el trigger necesita del parametro @codempresa que le mando desde
la aplicacion, como podria pasar ese parametro para que se ejecute el
trigger, y desde donde lo pasaria.

Gracias

Preguntas similares