【问题标题】:SQL Server - Size Based TriggerSQL Server - 基于大小的触发器
【发布时间】:2009-11-24 18:46:08
【问题描述】:

有没有办法在表格达到指定大小时触发触发器?

我很怀疑,但我想我会问。这对于记录我想保持在特定大小以下的表很有用。 (当触发器触发时,我会删除旧条目。)

【问题讨论】:

  • 你觉得什么尺码合适?

标签: sql-server sql-server-2008 triggers


【解决方案1】:

我认为使用计划的 SSIS 维护包可以更好地解决这个问题,但如果您真的想这样做,您可以添加一个触发器,该触发器将在插入表时触发,然后计算表大小和然后执行您想要的操作。

【讨论】:

  • +1 夜间维护最好的主意,你不想为此减慢插入速度。
【解决方案2】:

不确定这是否会有所帮助,但您可以针对数据库中文件的累积大小设置代理警报。在SQL Server Agent/Alerts/Sql Server Performance Condition Alert/Sql Server Databases/

【讨论】:

    【解决方案3】:

    如果您绝对希望触发此操作,我只会让触发器在由维护作业监控的表中排队执行操作,因为触发器通常不应该执行扩展操作 - 他们应该到达那里事情完成并返回控制权,以便事务可以尽快完成或失败。请注意,在某些情况下触发器已被禁用,您将无法运行维护。如果有人放弃了你的触发器,它可能不像一份没有出现在定期报告中的工作那么明显。

    我会推荐一个由 SQL Server 代理运行的作业,它会定期寻找需要采取行动的情况来执行这些操作,并将它们适当地报告给您正在使用的任何报告或系统管理软件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多