我想编写C#代码,这将帮助我不断查询数据库。
如果某个来源对数据库有条目(不确定条目何时进行),则应由我的代码处理。 (简单地说,我的代码应始终监视数据库中的条目)。
答案 0 :(得分:1)
你基本上有两个主要选择。
首先,您可以向表中添加一个额外的列,该列是一个位字段,可能称为“HasBeenProcessed”。然后,您可以安排检查HasBeenProcessed为0的任何列。处理该列,然后将列更新为1.
或者,you can look at this StackoverFlow post描述使用SqlDependency类在结果集显示不同时引发事件。
答案 1 :(得分:1)
如果您使用的是SQL Server 2008 R2或SQL Server 2012,则可以使用StreamInsight根据数据更改和模式设置事件。如果您使用的是先前版本> 2005年,您可以使用Notification Services(尽管StreamInsight远远优于并且基本上取代了Notification Services)。
答案 2 :(得分:1)
在您的代码中添加WebService
添加插页&更新触发器到你的桌子
创建一个可以从触发器调用的CLR函数
在该CLR功能中,使用所有必要的数据调用Web服务
在Web服务中,根据传递的参数执行您需要执行的操作
添加配置表,然后输入Web服务URL。
将url作为参数传递给CLR函数
您应该异步调用Web服务,以便最大限度地减少延迟。
注意:强>
我认为也可以从纯SQL调用Web服务,因此不一定需要CLR。
答案 3 :(得分:1)
你想要完成什么?如果它在缓存中保持相对静态但仍可能更改的数据集(例如供应商列表),Simon Whitehead的SqlDependency提议将为您提供良好的服务。如果它正在处理更类似于请求(例如订单)的内容,那么内部或外部激活的服务代理应该是合适的。无论哪种方式,重点是没有你的代码经常到数据库说“有什么东西给我?”。相反,让db告诉你的应用程序什么时候做,并采取相应的行动。