trigger para insertar datos de otra tabla

trigger para insertar datos de otra tabla

Hola,

Tengo una tabla (T1) en la que necesito crear un trigger para que al insertar un registro en uno de los campos de T1 inserte un dato de otra tabla T2.

Gracias por su ayuda


Comentarios

CREATE TRIGGER

( INSERT, UPDATE, DELETE ) en un Trigger de SQL SERVER 2005

Para Insertar, Modificar y Eliminar con un disparador de una base de dato (Sql Server 2005), se recomienda hacer un Trigger por cada operación.

TRIGGER
El los siguientes ejemplo, se muestra como se puede insertar, modificar, y eliminar información en una tabla, en esta caso llamada ([dbo].[BENEFICIARIOAUX]) que pertenese a una base de datos llamada (BDINTERFASE), con solo colocar estros tres ejemplos, en tres diferentes trigger o disparadors de otra tabla, en este caso llamada [dbo].[BENEFICIARIO]) de una base de datos diferente (BASECOMUN).

Nota La tabla que recibe la informacion (BENEFICIARIOAUX) no debe tenere correlativos automaticos que se generen en la tabla del triger o de origen.

INSERT

Ejemplo Insertar

CREATE TRIGGER [dbo].[TR_PROCTA]
ON [dbo].[BENEFICIARIO]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [BDINTERFASE].[dbo].[BENEFICIARIOAUX]
(id,codigo,nombre,razonsoc,rif,Direccion,telefono,correo,pagweb,tipocont,idsusp,tipoper)
SELECT id,codigo,nombre,razonsoc,rif,Direccion,telefono,correo,pagweb,tipocont,idsusp,tipoper
FROM INSERTED
END

UPDATE
Ejemplo Modificar.

CREATE TRIGGER [dbo].[TR_PROCTB]
ON [dbo].[BENEFICIARIO]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE BENEFICIARIOAUX
SET nombre = inserted.nombre,razonsoc = inserted.razonsoc,
rif = inserted.rif,Direccion = inserted.Direccion,
telefono = inserted.telefono,correo = inserted.correo,
pagweb = inserted.pagweb,tipocont = inserted.tipocont,
idsusp = inserted.idsusp,tipoper = inserted.tipoper
FROM [BDINTERFASE].[dbo].[BENEFICIARIOAUX], inserted
WHERE BENEFICIARIOAUX.id = inserted.id
END

DELETE
Ejemplo Eliminar.

GREATE TRIGGER [dbo].[TR_PROCTELIM]
ON [dbo].[BENEFICIARIO]
FOR DELETE
AS
BEGIN
SET NOCOUNT ON;
DELETE BENEFICIARIOAUX
FROM [BDINTERFASE].[dbo].[BENEFICIARIOAUX], deleted
WHERE BDINTERFASE.dbo.BENEFICIARIOAUX.id = deleted.id
END

alguien me podria ayudar al insertar datos a al base de datos quiero que sean seguros tanto en el formato o tipo de cada caracter mediante un trigger cual seria la solucion por favor en sql server gracias

Hola Ferchito como estas !, bueno, depende de lo que queres hacer, pues hay 2 tipos de triggers, DML y DDL. Los primeros son para sentencias de update, insert y delete, mientras que los segundos, son para sentencias del tipo definicion de objetos en la base o el motor de base de datos por ej: create table.

Para los DDL triggers te paso un articulo en este sitio que te va a servir mucho. http://www.todosql.com/blog/200801/auditando-con-ddl-triggers-en-sql-ser...

Para los DML triggers depende si queres loguear y disparar eventos antes las operaciones de modificacion de datos en una tabla o copiar los datos previos o posteriores a las modificaciones a una tabla, para ello, tenes que trabajar con las tablas inserted y deleted que maneja el motor de base de datos.

Comentame un poco mas sino para ver que se puede hacer.

Un abrazo virtual.

nalonso

Hola Yeso como estás !, si no hay problema en que lo realices de esa manera, cuando crees el TRIGGER, podes realizarlo con un INSERT INTO T1 SELECT C2 FROM T2 WHERE C1 = .
Espero te sirva.

Abrazo virtual.

nalonso