【问题标题】:How to catch that a trigger has been fired on sql server如何捕获已在 sql server 上触发的触发器
【发布时间】:2014-09-01 07:26:13
【问题描述】:

我有一个关于 SQL 的表,当这个表有插入时,我想打印这个插入的数据。

我在想什么:

  1. 在该表上创建触发器。
  2. 在触发器工作后处理 c# 上的打印事件。

我的问题

我不知道触发触发时触发 c# 代码的功能的名称是什么。

你能帮我解决这个问题吗?

【问题讨论】:

  • 这称为 SQL Server CLR 集成。
  • 查找这篇可能对您有帮助的文章:codeproject.com/Articles/19954/…
  • @SamerAbuRabie 该功能不是已弃用吗?
  • 您想在插入时立即打印吗?如果不能,您是否可以将数据放入触发器中的表中,然后定期轮询要打印的数据并在打印后将其删除?

标签: c# sql sql-server sql-server-2008 sqldependency


【解决方案1】:

有几种方法可以解决这个问题,解决方案取决于系统架构(权限、可访问性)以及实现它的知识。

基本上有这个选项,受指出的因素影响:

  • 直接从插入应用程序打印或从插入应用程序通知:您可以更改该应用程序吗?是否可以从应用程序通信到打印应用程序。 (例如,可以使用 WCF 来实现)
  • sql dependencies (SQL Notification request):打印应用应该创建并订阅一个sql依赖:你有权限在服务器上创建依赖吗?
  • 轮询:是快速而肮脏的解决方案:使用“计时器”检查是否有新数据并在可用时打印它

最后一个解决方案是问题最少的解决方案。它不是“智能”,但很容易实现。您可以根据预期的消息数量和 pring 应用程序的“实时”要求调整轮询周期。

【讨论】:

  • 我在考虑 sql 依赖项,我拥有所有权限。我的经理认为最后一个解决方案更好。我必须选择。你怎么看?
  • 如果您对投票解决方案没有任何意见,请实施它,您会省去一些麻烦。我会选择那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
相关资源
最近更新 更多