Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在系统表上设置触发器以收集历史数据?_Sql Server_Tsql_Sql Server 2000_Log Shipping_Triggers - Fatal编程技术网

Sql server 如何在系统表上设置触发器以收集历史数据?

Sql server 如何在系统表上设置触发器以收集历史数据?,sql-server,tsql,sql-server-2000,log-shipping,triggers,Sql Server,Tsql,Sql Server 2000,Log Shipping,Triggers,我能够在用户定义表上实现触发器,但不能在系统表上实现触发器(log\u shipping\u primaries和log\u shipping\u secondary),它存储有关何时生成备份.bak文件以及何时在辅助数据库复制和恢复事务日志ship文件.trn文件的信息 目标:在辅助数据库(灾难恢复站点)上实施RPO(恢复点目标)>15分钟 我的任务是监控记录运输活动,并向上级管理层提供历史数据。现在的问题是,这两个表每次添加新条目时都会更新旧条目(对于给定数据库) 解决方案(在SQL Ser

我能够在用户定义表上实现触发器,但不能在系统表上实现触发器(
log\u shipping\u primaries
log\u shipping\u secondary
),它存储有关何时生成备份
.bak
文件以及何时在辅助数据库复制和恢复事务日志ship文件
.trn
文件的信息

目标:在辅助数据库(灾难恢复站点)上实施RPO(恢复点目标)>15分钟

我的任务是监控
记录运输活动
,并向上级管理层提供历史数据。现在的问题是,这两个表每次添加新条目时都会更新旧条目(对于给定数据库)

解决方案(在SQL Server 2000中不起作用):每当插入新条目时,通过触发器在用户定义表中插入类似的数据,以保留历史数据

  • 如何在系统表上实现触发器(我需要什么权限)或者是否可能(请精确)
  • 类似于存储过程之类的触发器的替代方法(我没有存储过程方面的经验)

  • 若您使用SQL作业进行备份和事务日志传送,那个么在这种情况下,您可以在此之前添加一个步骤,以便在历史记录表中导入该数据

    无法在系统表上创建触发器


    我会考虑添加一个以适当频率运行的作业(例如,每30秒一次)

    为什么不在每次备份之前创建一个作业来保存表中的数据?至于怎么做,这真的是你的选择。编写存储过程,将insert语句直接写入SQL代理作业,坐在计算机旁,每15分钟按一次F5…:-)有很多选择

    感谢您的回复,只需查询一些系统表允许触发器(log_shipping_history),是否有人可以建议一些脚本来确定哪个系统表允许触发器