从SQL触发器内部调用c#方法

本文关键字:方法 调用 内部 SQL 触发器 | 更新日期: 2023-09-27 18:05:58

我使用c#和Visual Studio 2010以及SQL Server Management Studio 2008 R2进入Winforms应用程序。

我的应用程序检查数据库中以前的值,如果插入的当前值在一定范围内,我需要执行用c#编写的方法,即主机语言。该方法实际向数据库中存储的电子邮件地址发送电子邮件。

现在检查部分可以使用触发器轻松完成,但后者对我来说很麻烦。

谁能帮我一下吗?

从SQL触发器内部调用c#方法

有几种方法可以处理这个问题。

  1. 你可以将一个条目记录到一个c#服务监视的数据库中,当一个条目被添加时,它会发送电子邮件。这可能是某种Windows服务,每隔1分钟计时器检查更新。
  2. 您可以使用SQL- clr来集成c#代码和SQL代码。这需要打开几个安全点并将项目中的二进制文件嵌入到SQL Server中。出于安全原因,这是一种不太受欢迎的方法,但它可以完成这项工作。

您可能需要查看Database Mail。在SQL Server中集成了邮件发送功能。

否则,我强烈建议不要尝试在触发器中直接执行此操作-发送电子邮件可能是一个耗时的过程,如果电子邮件功能当前不工作,您不会希望延迟事务的完成。