捕获每个表上的插入,更新,删除操作以及登录SQL Server

时间:2015-03-18 23:55:05

标签: sql-server triggers

我有一个SQL Server 2008数据库。我需要在数据库中的每个表上捕获插入/更新/删除操作,获取受影响的主键并插入另一个表ChangeLogChangeLog需要捕获PK,源表,操作类型。

我不想为每个表编写触发器。什么是最简单的方法呢?

使用案例:我从Solr连接到SQL Server。更改日志用于增量导入。

2 个答案:

答案 0 :(得分:1)

我首先看看SQL Server更改跟踪,看看它是否能满足您的需求。它内置并且足够简单,可以访问: Change Tracking Overview

答案 1 :(得分:0)

你不想为每张桌子写一个触发器,因为你觉得它很难。

  1. 查询每个表的列表
  2. 查询每个表的主键
  3. 使用每个表和主键的数据创建一个用于添加,更新和删除的触发器脚本,以写入ChangeLog表。
  4. 构建此脚本并将其应用于您的数据库并不困难。如果您可以为一个表编写它,则可以自动为每个表构建脚本。通过错误检查(确实存在触发器),您可以在添加新表时运行它。