Member 12227707 Ответов: 1

Вставка данных из одной базы данных в другую базу данных с помощью триггера


Я хочу вставить одно значение таблицы базы данных в другое значение таблицы базы данных с помощью триггера..
После срабатывания триггера он будет автоматически вставлен в другую таблицу базы данных, а состояние первой таблицы базы данных также будет обновлено после срабатывания триггера.

Что я уже пробовал:

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

johannesnestler

так в чем же проблема? Почему ваше решение не работает? быстрый поиск в Google привел меня к следующему: https://stackoverflow.com/questions/30648748/syntax-for-sql-trigger-to-insert-data-in-another-db-and-also-to-update-any-field

Santosh kumar Pithani

Нет необходимости использовать триггеры его проблема производительности использовать "выход" cla...

1 Ответов

Рейтинг:
1

Shraddha_Patel

Создайте триггер user_bi перед вставкой на пользователя для каждой строки
НАЧАТЬ
Вставить в remote_user (идентификатор,имя, возраст) значения (новый.УДОСТОВЕРЕНИЕ ЛИЧНОСТИ,НОВЫЙ.имя, новый.Возраст);
КОНЕЦ $$

Создайте триггер user_bu перед обновлением пользователя для каждой строки
НАЧАТЬ
Обновление remote_user
КОМПЛЕКТ ИД= НОВЫЙ.Идентификатор,
название= Новый.название
возраст = NEW.Age
ГДЕ ID = OLD.ID;
КОНЕЦ $$

Создайте триггер user_bd перед удалением на пользователя для каждой строки
НАЧАТЬ
Удалить из remote_user
ГДЕ ID= OLD.ID;
КОНЕЦ $$

ОГРАНИЧИТЕЛЬ ;