Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用SQL Server作业自动发送电子邮件_Sql Server_Email - Fatal编程技术网

Sql server 使用SQL Server作业自动发送电子邮件

Sql server 使用SQL Server作业自动发送电子邮件,sql-server,email,Sql Server,Email,我正在开发一个.NET桌面应用程序,SQL Server作为数据库后端。应用程序的要求之一是,如果记录状态(例如)保持不活动状态达30天,则会向与该记录关联的用户发送提醒电子邮件 只要应用程序启动并运行,就可以很容易地在应用程序中完成这项工作。但是,假设在一段时间内,没有人启动应用程序,则不会发送提醒电子邮件,因为没有任何内容/节点会触发该操作 在SQL Server中创建一个可以监视记录并根据需要发送电子邮件的作业如何?有人这样做过吗 非常感谢 根据任务的要求,我建议您创建一个控制台程序(w/

我正在开发一个.NET桌面应用程序,SQL Server作为数据库后端。应用程序的要求之一是,如果记录状态(例如)保持不活动状态达30天,则会向与该记录关联的用户发送提醒电子邮件

只要应用程序启动并运行,就可以很容易地在应用程序中完成这项工作。但是,假设在一段时间内,没有人启动应用程序,则不会发送提醒电子邮件,因为没有任何内容/节点会触发该操作

在SQL Server中创建一个可以监视记录并根据需要发送电子邮件的作业如何?有人这样做过吗


非常感谢

根据任务的要求,我建议您创建一个控制台程序(w/C#或VB.NET),用于检查非活动(30天)行条件,然后生成相应的电子邮件通知消息。然后使用SQL Server代理作业每隔一小时左右运行一次该程序(取决于检测非活动行条件所涉及的紧急程度)

下图显示了SQL Server 2008 R2对象资源管理器中SQL Server代理作业的显示方式

这涵盖了创建在特定时间运行的控制台程序的一些方面。SQL Server作业代理具有多个计划选项,可以满足您的需要


您可能不愿意为此创建一个控制台程序,但您很容易发现这样做会提供一些选项,而这些选项很难用纯基于SQL Server的方法实现。另外,您将来可能需要类似于此方法提供的处理。

我以前曾使用过此方法。在存储过程中设置它,然后安排定期运行,以检查是否需要发送任何电子邮件。我想如果你想要实时的电子邮件提醒,你也可以在触发器中使用它。你使用的是什么版本的SQL Server?@JohnH我使用的是2008@3N1GM4我对SQL Server和t-SQL都不太了解,有没有关于
sp\u send\u dbmail
的教程?我还是去看看。谢谢。作为一名C#开发人员,我确实发现这种方法比单纯在服务器端实现的方法更可行(SqlServer和T-SQL并不是我的专长)。因此,这种方法意味着我可以使用类似于连接SMTP服务的类,而不是T-SQL的
sp\u send\u dbmail
。保持不变的是,该服务仍然是由SQL Server代理计划和触发的。我的理解正确吗?正确,SQL Server代理提供了一个调度功能,以便您可以定期运行控制台程序。这允许您创建一个程序,该程序在给定的时间点传递数据。下一次运行将根据您在SQL Server代理中为程序创建的计划确定。我希望这个程序能在几秒钟左右的短时间内运行。然后程序可以保持空闲状态,直到调度器再次启动它进行下一次运行。由于安全性要求,我应该使用第一种方法,即使用服务器端存储过程发送电子邮件。我已经设置了数据库邮件配置文件,并使用
sp\u send\u dbmail
成功发送了测试电子邮件。你对如何与职业介绍所合作有什么建议吗?可以定期扫描数据库记录并找出过期记录以发送提醒电子邮件的东西。所谓“第一种方法”是指不创建控制台程序而仅使用SQL Server的方法吗?如果是这样的话,在我看来,这会使你的任务更具挑战性。因为我没有用过sp_send_dbmail,而你已经用过了,所以你在这方面对我有优势。根据需要,就这个话题再发一个问题。我还建议您确定电子邮件格式的范围,它们必须传达什么信息,发出提醒电子邮件的频率,每个用户发送一封以上的电子邮件,以及如何更新数据库以满足这些要求。祝你好运。实际上我没有使用过sp_send_dbmail,但是创建一个定期发送电子邮件的工作是很容易的,我自己也能很容易地找到。由于我不擅长t-sql,现在我面临的主要挑战是创建一个或多个事务(1)从
用户
表中选择符合特定条件的记录,(2)将这些记录的电子邮件放入基于
的sp_send_dbmail
事务中,以及(3)将这些记录的状态从
false
更新为
true
,例如
send\u email
。内容并不重要,只是一些静态文本,我可以将时间设置为每小时一次。