1
6
从我所听到的每一件事来看,从数据库的任何“内部”进行网站调用都不是一种“最佳实践”,从触发器内部进行Web调用会让我退缩[延迟、延迟、阻塞、死锁…OOG.数据库的后端很好,但前端却很差。让一个专用的应用程序做你的Web和数据库的协调,你可能会好多了。 将某些东西连接到SQL代理调用中可能会起作用,但请注意,没有“本机”方法可以从作业步骤中调用网站。他们可能是故意设计的。 |
2
6
我知道您可以在SQL Server中嵌入.NET CLR代码,但我不知道是否可以从触发器调用CLR代码。 我会考虑一种不同的架构,通过让一个表在您需要调用Web服务时随时插入记录,并运行一个外部应用程序来轮询该表,然后从那里调用Web服务。 如果您试图直接在触发器内部调用Web服务,那么调试、错误日志记录等就会出现很多问题。 只有我的2美分。 |
3
3
如前所述,从触发器调用Web服务将导致数据库性能下降,这是由于调用所需的时间。 SQL Server没有名为 SQL Server Broker 它是为将异步消息传递集成到SQL Server而设计的。虽然我现在有自己使用它的经验,但如果您希望将所有处理逻辑保留在SQL Server中,这可能是一个很好的起点。 如果可以的话,我建议将调用服务的责任转移到使用数据库的任何应用程序上。在这个级别上,您将能够在不占用数据库的情况下处理延迟。 |
4
1
正如@keith在回答中提到的,完全调用Web服务可能是非常糟糕的。假设Web服务已关闭,并且您有许多更新被锁定,并且正在等待访问您的数据。但是,您可以使用SQL Service Broker, here is a good tutorial 在触发器中使用它们。以下是队列设置后的示例触发器代码。您始终可以创建一个监视队列的服务,如果需要,还可以实际调用Web服务。
|
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |