C# SQL触发器来运行.Net应用程序,您可以这样做吗?

C# SQL触发器来运行.Net应用程序,您可以这样做吗?,c#,sql,sql-server,C#,Sql,Sql Server,我对MS SQL Server一无所知,但需要知道是否有可能设置某种触发器,只要满足条件,它就会调用C#.exe并为数据库传递一个字段 因此,每当添加新行时,它都会导致C#应用程序运行,并将该行中的值传递给它 希望这对某人有意义 如果是,您如何添加它?我认为这是SQL 2003。您可以使用CLR触发器。有两种方法可以做到这一点。首先,您可以使用 第二,你可以使用另一个应用程序来获取价值 两者都是我认为是非常非常坏的想法,尤其是如果你对SQL Server的知识有限。我强烈建议不要像在触发器中尝

我对MS SQL Server一无所知,但需要知道是否有可能设置某种触发器,只要满足条件,它就会调用C#.exe并为数据库传递一个字段

因此,每当添加新行时,它都会导致C#应用程序运行,并将该行中的值传递给它

希望这对某人有意义


如果是,您如何添加它?我认为这是SQL 2003。

您可以使用CLR触发器。

有两种方法可以做到这一点。首先,您可以使用

第二,你可以使用另一个应用程序来获取价值

<强>两者都是我认为是非常非常坏的想法<强>,尤其是如果你对SQL Server的知识有限。我强烈建议不要像在触发器中尝试的那样执行操作。无论采用哪种方式,都需要考虑到严重的性能和安全问题


与其尝试执行您正在执行的操作,我建议您更改应用程序的代码以执行类似的更新。

这似乎不是一个好主意-可能有更好的方法来实现您正在尝试执行的操作。您能否提供有关业务需求的更多详细信息?

您是否考虑过研究ssis包?这提供了sql和c#之间的简单交互。

为什么不编写一个sql触发器来写入表呢。然后用c#对该表进行投票,查找标志代码,并使用该代码调用c#消息。

2个问题;1-是否希望C#阻止事务提交,直到应用程序完成?2-c应用程序将在哪里运行(同一台机器,不同的机器)?SQL 2003不存在。所以很可能您必须使用SQL 2000/2005。如果启用2000,则可以使用扩展存储过程。在2005年,您有CLR集成。就像戴夫在下面提到的,这听起来是个坏主意。提供更多的上下文来解释你为什么要做这样的事情。可能有更好的选择。嗨,不,我不想让它阻塞。2.在同一台服务器上。@疯狂的感谢,我被告知是2003年(显示了我对SQl的了解!我在Dave的评论下面添加了更多信息。谢谢。我不是想改变你问题的上下文,但是你打算在这个“不能”的C#可执行文件中做什么是否利用SQL Server触发器?好的,很抱歉没有提供足够的信息。数据正在从和外部源推送到数据库中,但是它没有所有需要的数据。因此,我想调用一个包含补充数据的Web服务,并将其附加到另一个表中。我知道如何调用Web服务等,但不知道如何构建某种类型的触发器调用我的应用程序。感谢您迄今为止提供的所有帮助…有限不,不存在!我想我可以轮询DB以寻找新的更新,但认为是触发器(如果这是正确的术语)会更有效率吗?谢谢,如果这是一个2005年的数据库,我会研究这个问题。我被告知这是一个2003年的数据库,但上面的评论不可能!如果你从web服务获得补充数据,你可以将其构建到你的ssis包中。我建议你花一点时间阅读ssis。它非常适合组合多个进程,而且非常简单ple可供使用。我想确保您可以使用web服务,唉,您可以。我确实想到了这一点,但不想在x小时内没有更新但有更新时继续访问数据库,我需要快速获取额外数据。无论如何,感谢您的建议。