A simple criteria for trigger necessity might be this: If I can get a valid report out of the database without the trigger to ensure that the data is good, then it is probably a business-rule trigger and probably should not be in the database.
Just because the DB server can do a thing, it does not follow that you should make it do that thing.
Hrm. I am using .NET, and most of the "compute intensive" and otherwise funky stuff (getting data from ancient systems) are running as a windows Service. -- This provides some validation data and alarms for older systems.
More advanced systems email us their problems; I was planning to use SQLMail on a 5 minute interval to import the alarms into a table.
With the questions of:
I thought it would be better to put the "Rule Matching" logic into triggers and stored procedures; these would either call a procedure (mainly for emailing reports), or run a program (using xp_cmdshell). I will keep these "Event Triggers" separate from the "Integrity Triggers" (it looks like MSSQL can handle multiple trigger procedures... I suppose I'll have to figure out how to order them...)
On a related note, does anyone have a suggestion for a reporting tool that can output plain text? I can't seem to get that with either CR or MSReports...
TIA,
Thor