|  | Posted by Erland Sommarskog on 05/02/07 21:29 
Ots (otsmcgee@yahoo.com) writes:> I'm using SQL 2000, which is integrated with a VB.NET 2003 app.
 >
 > I have an Audit trigger that logs changes to tables. I want to apply
 > this trigger to many different tables. It's the same trigger, with the
 > exception of the table name. I could manually change the table name in
 > the trigger and create it, over and over, but I'd like to automate
 > this - by iterating through the collection of tables and passing the
 > tablename to something that would create the audit trigger for that
 > table.
 >
 > Any ideas? With any scripting language I can create the text of the
 > CREATE TRIGGER procedure for each table and use simple text
 > replacement, but how do I automate that inside of SQL?
 
 I don't see why you would use T-SQL to generate the triggers? Why not
 simply use a scripting language of your choice for the job.
 
 Besides I don't get a good feeling when you say that it is the same
 trigger, save for the table name. That indicates that you are looping
 over the column set, use a lot of dynamic SQL. It's not going to be
 healthy for the performance of your system. It would be a better idea
 to that looping in the trigger-generator, so that the trigger code
 is static SQL only.
 
 An even better idea may be to invest which third-party products
 that could meet your needs. ApexSQL has a trigger-based product
 SQLAudit. There are also auditing solutions that works from the
 transaction long, Lumigent has one I know.
 
 
 --
 Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se
 
 Books Online for SQL Server 2005 at
 http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx
 Books Online for SQL Server 2000 at
 http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx
  Navigation: [Reply to this message] |