我有一個現有的流量管理系統(不是我設計的),並且想要設置一個自動發送電子郵件以用於交付證明 - 我們有將電子簽名等發送到我們的Web服務器並更新的應用程序在幾張不同的表格中提供相關信息。插入後的SQL Server觸發器
我想現在創建一個SP,向客戶發送電子郵件以提供交付詳情。 我在一張桌子上創建了一個觸發器,其中給出了狀態和簽名詳細信息,即名稱和gps位置。
USE [Transport_Comp1]
GO
/****** Object: Trigger [dbo].[TRG_InsertPodEmail2] Script Date: 02/22/2016 23:18:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[TRG_InsertPodEmail2]
ON [dbo].[DscPalletDetails]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
insert into dbo.Pod2Email ([dwDscPalletDetailsId]
,[dwPalletIdFK]
,[dwJobItemIdFK]
,[dwLegIdFK]
,[dwDscStatusIdFK]
,[szDscStatusCode]
,[szNotes]
,[bIsCollection]
,[dtUpdateDate]
,[szScannedBarcode]
,[dwSignatureIdFK]
,[dwScanStatusIdFk]
,[nScanRef]
,[szPalletNum])
SELECT [dwDscPalletDetailsId]
,[dwPalletIdFK]
,[dwJobItemIdFK]
,[dwLegIdFK]
,[dwDscStatusIdFK]
,[szDscStatusCode]
,[szNotes]
,[bIsCollection]
,[dtUpdateDate]
,[szScannedBarcode]
,[dwSignatureIdFK]
,[dwScanStatusIdFk]
,[nScanRef]
,[szPalletNum]
FROM INSERTED
-- Insert statements for trigger here
END
我可以擴展PodEmail表來包含來自另一個表的數據,即賬戶信息嗎?
我想創建一個表格,我可以使用它作爲遊標的基礎來循環通過記錄從帳戶表發送電子郵件到電子郵件 - 這是要走的路還是我遠離基地?
任何指針非常感謝
BR
保羅
不知道你在問什麼,但你可以加入插入到另一個表,以獲得額外的領域,如果這是你想要的。你必須有一個共同的關鍵領域。 – HLGEM
您正處在正確的軌道上 - 在觸發器中進行最少的處理。稍後將複雜的處理留給單獨的批處理作業,該批處理作業將通過「Pod2Email」表進行批處理。這是您應該在其中加入帳戶信息的地方 - 在之後的批處理作業中。通過批處理作業,我的意思是例如一個存儲過程,它處理表Pod2Email,很可能在遊標中,這是從SQL代理作業調用的。簡而言之,請將帳戶信息加入您的後續批處理作業。除非該信息僅在觸發時間可用,否則不要在觸發器中進行。 –