当前位置: 首页 > 面试题库 >

SQL CLR触发器可以做到这一点吗?或者,还有更好的方法?

洪旻
2023-03-14
问题内容

我想编写一个监视数据库表的服务(可能在c#中)。当将记录插入表中时,我希望服务获取新插入的数据,并使用它执行一些复杂的业务逻辑(对于TSQL来说太复杂了)。

一种选择是让服务定期检查表以查看是否已插入新记录。这样做的问题是,我希望服务在插入发生后立即知道它们,并且我不想破坏数据库的性能。

做一些研究,似乎编写CLR触发器可以完成这项工作。我可以在发生插入时触发的C#中编写触发器,然后将新插入的数据发送到Windows或WCF服务。

您认为SQL CLR触发器的良好(甚至可能)使用是什么?

关于如何实现此目标还有其他想法吗?


问题答案:

可能您应该取消后处理与插入的耦合:

在“插入”触发器中,将记录的PK添加到队列表中。

在单独的服务中,请从队列表中读取并执行复杂的操作。完成后,将记录标记为已处理(连同错误/状态信息),或从队列中删除记录。



 类似资料:
  • 我从其他答案中尝试了各种方法,但还是无法解决这个问题。我把错误的副本放在http://randy.strausses.net/blog/bug/ 多谢了。另一种选择是放弃使用Eclipse。

  • 如果只有一方有getter或setter(私有字段被命名为不同的名称,以确保它不直接访问私有字段),该怎么办? 如果一个有getter而另一个有setter来处理完全不匹配的私有字段呢?(但是getter和setter的名称匹配。) 我编写了一个测试程序,在https://www.jdoodle.com/online-java-compiler中运行:

  • 问题内容: 说我有一个摇摆的GUI,我想听。您认为谁应该是侦听器类,谁应该负责?实施它的最佳或首选方式是什么?有什么意见吗?我通常会这样: 有没有更好的办法? 编辑: 谢谢大家的智慧和帮助。我很感激。 问题答案: 有几种执行事件侦听器的常用方法(在下面的代码中,我想到的唯一一个就是静态内部类)。下面的代码使用ActionListener,因为它很简单,但是您可以将其应用于任何侦听器。 请注意,“这

  • 问题内容: 我正在使用一个我不想更改的现有架构。该模式在表Person和VitalStats之间具有一对一关系,其中Person具有主键,而VitalStats使用相同的字段作为其主键和针对Person的外键,这意味着其值是相应PK的值人。 这些记录是由外部流程创建的,我的JPA代码从不需要更新VitalStats。对于我的对象模型,我希望我的Person类包含VitalStats成员BUT: 当

  • 我对Spring Data JPA技术相当陌生,目前面临一个我无法处理的任务。我正在为这种情况寻求最佳实践。 在我的Postgres数据库中,我有一个一对多关系连接的两个表。表“account”有一个字段“type_id”,该字段是对表“account_type”字段“id”的外键引用: 因此,'account_type'表只起到字典的作用。因此,我创建了JPA实体(Kotlin代码): 在我的S