Компонент Service Broker внутри триггера, вызывающего хранимую процедуру связанного сервера с данными в очереди в качестве параметров - PullRequest
0 голосов
/ 26 ноября 2018

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

Мне предложили реализоватьВместо этого используется сервис-брокер, поэтому мой вопрос в том, возможно ли это, и как я могу объединить его с приведенной ниже логикой. Хранение данных в очереди и передача их в хранимую процедуру.

Возможно, мне не хватает некоторых общихсмысл здесь, но это из-за моего непонимания для сервисного брокера и времени для завершения.

 CREATE TRIGGER [dbo].[BenRef_UPDATEtrg]
   ON [dbo].[ITRAEN]
 AFTER UPDATE
AS

SET ANSI_NULLS ON
SET ANSI_WARNINGS ON

 BEGIN

   IF UPDATE(poz2) 

    BEGIN 


 DECLARE @benRefNum VARCHAR(30);
 DECLARE @partija VARCHAR(30);
 DECLARE @unikum VARCHAR(30);



    DECLARE @storeBenRef as table
    (
        BeneficiaryRef VARCHAR(30), 
        Partija VARCHAR(30) collate Serbian_Latin_100_CI_AS, 
        Datum DATETIME,
        Unikum VARCHAR(30)
    )


-- Trigger logic
INSERT INTO @storeBenRef ( BeneficiaryRef, Partija, Datum, Unikum) 
  SELECT i.poz2, i.PARTIJA,CONVERT(DATETIME,i.DOTVORANJE,121) AS datum,i.Unikum
       FROM inserted i
         INNER JOIN deleted d 
             ON i.PARTIJA = d.PARTIJA


    SET @benRefNum = ( SELECT BeneficiaryRef FROM @storeBenRef);
    SET @partija = ( SELECT partija FROM @storeBenRef);
    SET @unikum = (SELECT Unikum FROM @storeBenRef);


     /*
   Linked server procedure using retrieved data as parameters 
     */

    EXEC [EXPSRV1].[OPR].[dbo].[BenRefUpdate] @BenRefNum = @benRefNum, @Party = @partija,@Arrangement_unikum = @unikum;


END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...