是否可以在 Windows 服务中触发操作,或者是否可以从存储过程中引发可以在服务中捕获的事件。
如果您想象一项服务每 5 分钟运行一次,那将执行一些操作。如果数据库中发生了某些事情或执行了存储过程,并且我想在 5 分钟之前触发此操作,该怎么办。
有人有什么想法吗?
谢谢
埃德
是否可以在 Windows 服务中触发操作,或者是否可以从存储过程中引发可以在服务中捕获的事件。
如果您想象一项服务每 5 分钟运行一次,那将执行一些操作。如果数据库中发生了某些事情或执行了存储过程,并且我想在 5 分钟之前触发此操作,该怎么办。
有人有什么想法吗?
谢谢
埃德
听起来您根本不应该使用 Windows 服务。我会设置一个 SQL 作业每 5 分钟运行一次,然后设置一个触发器或任何您希望发生的任何事情,以便在必要时手动运行该作业。
编辑:但是,如果服务在数据库之外执行某些操作,您可以使用 xp_cmdshell 运行系统命令(虽然不是最佳选择)。
您可以在 SQL Server 中创建一个 CLR 过程,该过程以某种方式使用 SOAP、Remoting 或任何媒介与服务进行通信。不过这是通用的。我认为 SQL Server 2005 的查询通知功能在这里会有所帮助。
如果您执行 raiserror(@ErrorMessage,16,1),只要您使用 16 和 1 的严重性和状态,它就应该在客户端生成异常。