Click here to Skip to main content
15,886,137 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I want to insert one database table value to another database table value using trigger..
After Trigger fire it will automatically inserted to another database table.and the first database table status also updated after fire trigger.

What I have tried:

create TRIGGER AfterInsert ON DEMODATABSE.[dbo].[TRANS]       
FOR INSERT
AS
BEGIN
  DECLARE @LBrCode INT ;
  DECLARE @EntryDate DATETIME ;
  DECLARE @PrdAcctId VARCHAR(32);
  DECLARE @AgtPrdAcctId VARCHAR(32);
  DECLARE @AMOUNT FLOAT;
  DECLARE @Type VARCHAR(10);
  --SET @Type='Credit'
  SELECT @Type = T.TYPE FROM [SYSDB01].DEMODATABSE.[dbo].[TRANS] T;

  IF @Type = 'Credit'
  BEGIN
    SET NOCOUNT ON
    SET @LBrCode=5;
    SET @EntryDate=getdate();
    SELECT @EntryDate=T.DATE FROM [SYSDB01].DEMODATABSE.[dbo].[TRANS] T;  
    SELECT  @PrdAcctId =G.PrdAcctId FROM [SYSDB01].DEMODATABSE.dbo.[GL] G WHERE G.PrdAcctId IS NOT NULL 
    SELECT  @AgtPrdAcctId =G.AgtPrdAcctId FROM [SYSDB01].DEMODATABSE.dbo.[GL] G;
    SELECT @AMOUNT =T.AMOUNT FROM  [SYSDB01].DEMODATABSE.[dbo].[TRANS] T; 


    INSERT INTO [SYSDB01].SECONDDEMODATABSE.dbo.testtable( LBrCode , EntryDate, CustPrdAcctId, AgtPrdAcctId, CustAmt)     
   
   VALUES (5,getdate(),@PrdAcctId,@AgtPrdAcctId,@AMOUNT)  
   
     
    SELECT @LBrCode,T.DATE, G.PrdAcctId,G.AgtPrdAcctId, T.AMOUNT   
      FROM  [SYSDB01].DEMODATABSE.dbo.TRANS T ,[SYSDB01].DEMODATABSE.dbo.GL G    
      WHERE  
       T.TYPE='Credit' 
    AND
    	   G.AC_NO = T.AC_NO 
	 	 AND G.PrdAcctId IS NOT NULL
  	     AND T.status = '5'

	 ----------- --------- ---------------
    UPDATE a SET a.status ='6' from [SYSDB01].DEMODATABSE.dbo.[TRANS] a
    INNER JOIN [SYSDB01].DEMODATABSE.dbo.[GL] b
		ON a.AC_NO=b.AC_NO 
    WHERE   
	  a.TYPE='Credit' 
    AND b.AC_NO = a.AC_NO 
    AND a.status='5'
 
	PRINT 'AFTER INSERT trigger fired.' 
 END 
END
GO
Posted
Updated 21-Apr-19 22:06pm
Comments
johannesnestler 17-Apr-19 10:24am    
so what's the Problem? Why does your solution not work? a quick Google search lead me to this: https://stackoverflow.com/questions/30648748/syntax-for-sql-trigger-to-insert-data-in-another-db-and-also-to-update-any-field
Santosh kumar Pithani 17-Apr-19 10:29am    
No need to use triggers its a performance issue use "OUTPUT " cla...

1 solution

CREATE TRIGGER user_bi BEFORE INSERT ON user FOR EACH ROW
BEGIN
INSERT INTO remote_user (ID,name, age) VALUES (NEW.ID,NEW.name, NEW.Age);
END $$

CREATE TRIGGER user_bu BEFORE UPDATE ON user FOR EACH ROW
BEGIN
UPDATE remote_user
SET ID= NEW.ID,
name= NEW.name
age = NEW.Age
WHERE ID = OLD.ID;
END $$

CREATE TRIGGER user_bd BEFORE DELETE ON user FOR EACH ROW
BEGIN
DELETE FROM remote_user
WHERE ID= OLD.ID;
END $$

DELIMITER ;
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900