晚安乡亲们,
我需要创建一个存储过程,通过参数给出一个表的名称,创建一个触发器来审计表中的数据变化。
我需要做一些与本文代码非常相似的事情,但是出于性能原因,我需要在我的程序中有一个表单,允许我选择要审计的表和主要字段。
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'
如果你能帮助我,我将非常感激,因为我试图改变代码几乎两天而没有太大的成功。