Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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触发器以将插入的数据发送到远程url_Sql Server_Database Trigger - Fatal编程技术网

Sql server 在插入时创建SQL Server触发器以将插入的数据发送到远程url

Sql server 在插入时创建SQL Server触发器以将插入的数据发送到远程url,sql-server,database-trigger,Sql Server,Database Trigger,我是SQL Server新手,有一种情况,我希望立即将插入的数据接收到我的web服务url 因此,我想在SQLServer中创建一个触发器,将所有插入的数据发送到我的web服务url 你能帮我一下吗。从触发器调用服务真是个坏主意。即使您应该避免从SQL Server调用任何服务,也应该从SQL Server外部调用。您可以通过以下方式实现您的需求 在每次插入时,使用触发器将新插入的行存储在表(队列)中,以供某个后台作业处理。这将确保插入性能不会受到影响,并且失败的机会将降至最低 您可以选择以下选

我是SQL Server新手,有一种情况,我希望立即将插入的数据接收到我的web服务url

因此,我想在SQLServer中创建一个触发器,将所有插入的数据发送到我的web服务url


你能帮我一下吗。

从触发器调用服务真是个坏主意。即使您应该避免从SQL Server调用任何服务,也应该从SQL Server外部调用。您可以通过以下方式实现您的需求

在每次插入时,使用触发器将新插入的行存储在表(队列)中,以供某个后台作业处理。这将确保插入性能不会受到影响,并且失败的机会将降至最低

您可以选择以下选项之一

  • 处理服务:您可以创建一个windows服务,该服务将汇集队列表,它将拾取挂起的项目并调用所需的服务。成功完成后,应将队列状态更新为已处理

  • SQL作业:编写一个SQL作业,并将其计划在固定的时间间隔(如1分钟)后运行。此作业将从队列表中拾取挂起的项目,并将使用CLR存储过程
    sp_OACreate
    调用该服务


  • 这不是实时的,而是更可靠的选择,失败的机会更少。您可以通过增加作业/服务的频率来接近实时。

    我强烈建议不要执行任何(可能)长时间运行的任务,如在触发器中调用外部资源。触发器在引发它的语句的上下文和事务中执行,并且该事务仅在触发器完成后完成。因此,触发器应该非常灵活和快速-不要做任何“繁重的工作”或大量的处理!我们可以在插入事件后执行此操作吗?否-“插入时”和“插入后”是同一件事,真的,您所说的web服务url到底是什么意思?@MK_uuWeb服务url表示我服务器中的任何url,或者您可以说将接收数据并将处理接收到的数据的API url。