我必须有两个表employee
和department
。
员工
Id, Name, JoiningDate, SpecialRegistrationDone, DepartmentId
部门
DepartmentId, Name
有一个专门的部门,拥有DepartmentId = 2
和Name = "AI"
。
有一个Java服务将数据推送到Employee
和Department
表中。
现在,我必须编写一个满足条件的轮询服务(每15分钟轮询一次)
select e.*
from Employee e
inner join Department d on e.DepartmentId = d.DepartmentId
and e.DepartmentId = 2
and e.JoiningDate > cast(GetDate() as date)
and e.specialRegistrationDone = 0
如果获取了任何记录,则调用Web服务说http://specialdepartmentregistration/register并在此传递员工详细信息。
一种写方法是编写一个Java服务,该服务轮询数据库并执行此查询,获取结果并为结果集调用Web服务。
我正在寻找一种仅在SQL Server端创建服务的方法,该服务执行查询并调用Web服务。我该怎么写?在SQL Server 2014中甚至可能吗?
答案 0 :(得分:1)
这是一种您要实现的目标:
步骤1: How to run a stored procedure in sql server every hour?
步骤2:在存储过程中编写业务逻辑以检查数据
第3步:如所讨论的here
所示,通过CLR集成调用/发布到Web服务不建议您实施计划的方式。数据库应该只专注于存储数据。
相反,您应该有一个CRON服务来定期命中您的应用程序。然后从应用程序中查询数据库并根据需要发布到Web服务。
或者,在您的应用程序中运行计划服务,您的应用程序可以如上所述检查数据库。 Quartz是可用于此目的的库。