创建触发器以审核数据更改SQL Server

时间:2016-01-07 21:08:35

标签: sql-server triggers sql-server-2012

晚安乡亲们,

我需要创建一个存储过程,通过参数给出一个表的名称,创建一个触发器来审计表中的数据变化。

我需要做一些与本文代码非常相似的事情,但是出于性能原因,我需要在我的程序中有一个表单,允许我选择要审计的表和主要字段。

http://weblogs.asp.net/jongalloway/adding-simple-trigger-based-auditing-to-your-sql-server-database

我尝试使用游标等各种方式更改代码失败,因为我对T-SQL没有多少经验。

我的主要疑问是如何在我的存储过程中通过参数提供表名和我想要的字段(可以是2或3或更多)。

Select field = 0,maxfield = max (ORDINAL_POSITION) 
from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME =tablename 

while field <maxfield 
begin 
    select field = min (ORDINAL_POSITION) 
    from INFORMATION_SCHEMA.COLUMNS 
    where TABLE_NAME =tablename 
      and ORDINAL_POSITION> @ field 

    select bit = (field - 1)% 8 + 1 =bit select power (2, @ bit - 1) 
    select char = ((field - 1) / 8) + 1 if substring (COLUMNS_UPDATED () , @ char, 1) &bit> 0 or type in ('I', 'D')

我需要类似的东西:

select * 
from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME = tablename 
  and COLUMN_NAME = 'My FIELD'

如果你能帮助我,我将非常感激,因为我试图改变代码几乎两天而没有太大的成功。

0 个答案:

没有答案