2016-07-30 15 views
0
USE [dbname] 
    GO 
    SET NOCOUNT ON 
    GO 
    ALTER TRIGGER [dbo].[my_trigger] 
    ON [dbo].[Table_1] 
    AFTER INSERT, UPDATE, DELETE 
    AS 
    EXEC msdb.dbo.sp_send_dbmail 
      @recipients = '[email protected]', 
      @profile_name = 'PQM', 
      @subject = 'Data Inserted', 
      @body = 'Hi Data has been inserted'; 
    GO 

Dieser Code wird ausgeführt und die E-Mail wird ausgelöst, wenn ich aus dem SQL Server-Management-Studio einfügen oder einen VBA-Code verwenden. Aber wenn ich vom SAS-Serverende einfüge, wird die Mail weder ausgelöst noch ausgelöst.SQL-Trigger nicht beim Einfügen von SAS

SAS Codierung

proc sql noprint; 
connect to odbc as sql1(datasrc= PQMDB USER= 'XXXX' PASSWORD = 'XXXX'); 
create table tr as select * 
from connection to sql1 
    (insert into dbname.dbo.Table_1 values('abc1'); 
disconnect from sql1; 
quit; 

Dieser Code ausführt, in Ordnung, wenn i den Trigger am Ende SQL deaktivieren.

+0

Sind feuert Sie sicher, dass Sie auf die gleiche Datenbank sich verbinden? Und noch etwas - ist die Zeile im zweiten Fall mit dem Trigger aktiviert? – OzrenTkalcecKrznaric

Antwort

0

hatte SAS Ende chnage und verwendet „Execute() von < Verbindungsname>, und das half und die SQL, die Auslöser nun fein

+1

Ich bin überrascht, dass die andere Syntax sogar lief. Wie sah die Tabelle WORK.TR in SAS aus? – Tom