我有一个现有的流量管理系统(不是我设计的),并且想要设置一个自动发送电子邮件以用于交付证明 - 我们有将电子签名等发送到我们的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代理作业调用的。简而言之,请将帐户信息加入您的后续批处理作业。除非该信息仅在触发时间可用,否则不要在触发器中进行。 –