Everytime a stored proc is ALTERed or CREATEd, I want to capture that in a trigger to do some stuff afterwards.
Can I do that in SQL Server 2008?
Thank you. --Beemer
Everytime a stored proc is ALTERed or CREATEd, I want to capture that in a trigger to do some stuff afterwards.
Can I do that in SQL Server 2008?
Thank you. --Beemer
If you want to do somethin withing the ALTER/CREATE/DROP context (ie. inside the same transaction) and even prevent the ALTER/CREATE/DROP then you should look into DDL Triggers.
If you want to do something after the ALTER/CREATE/DROP , in a separate transaction, and have the liberty to do some lengthy processing without slowing down the original DDL, then you should look into Event Notifications.
Note that Event Notifications can actually be delivered remotely so you can capture all DDL events from an entire corporate group into one single central repository.
CREATE TRIGGER tddl_storedprocevents ON DATABASE FOR CREATE_PROCEDURE,ALTER_PROCEDURE,DROP_PROCEDURE AS INSERT INTO AUDIT_TABLE(EventType, SQLCommand, etc) SELECT EVENTDATA().value( (/EVENT_INSTANCE/EventType)[1] , nvarchar(512) ) , EVENTDATA().value( (/EVENT_INSTANCE/TSQLCommand)[1] , nvarchar(max) ) , etc /* EVENTDATA() SELECT EVENTDATA().value( (/EVENT_INSTANCE/EventType)[1] , nvarchar(512) ) , EVENTDATA().value( (/EVENT_INSTANCE/PostTime)[1] , datetime ) , EVENTDATA().value( (/EVENT_INSTANCE/SPID)[1] , nvarchar(4) ) , EVENTDATA().value( (/EVENT_INSTANCE/ServerName)[1] , nvarchar(512) ) , EVENTDATA().value( (/EVENT_INSTANCE/LoginName)[1] , nvarchar(512) ) , EVENTDATA().value( (/EVENT_INSTANCE/LoginType)[1] , nvarchar(512) ) , EVENTDATA().value( (/EVENT_INSTANCE/SID)[1] , nvarchar(512) ) , EVENTDATA().value( (/EVENT_INSTANCE/ClientHost)[1] , nvarchar(512) ) , EVENTDATA().value( (/EVENT_INSTANCE/IsPooled)[1] , nvarchar(1) ) etc */ DROP TRIGGER tddl_storedprocevents ON DATABASE
I recommend reading the documentation about the xml object returned by the EVENTDATA(), if you didn t do it by now.
Hope it helps.
I m trying to export some tables from SQL Server 2005 and then create those tables and populate them in Oracle. I have about 10 tables, varying from 4 columns up to 25. I m not using any constraints/...
In our database we have an SQL server account that has the correct roles to access some of the databases. We are now switching to windows authentication and I was wondering if we can create a NT user ...
I have been trying to execute a MS SQL Server stored procedure via JDBC today and have been unsuccessful thus far. The stored procedure has 1 input and 1 output parameter. With every combination I ...
Is it possible to use the sqlcmd command to dump table structure the way it can be done with mysqldump?
Hi I have the following SP, however when I use LINQ to SQL it generates 2 multiple recordsets. For my sanity I am trying to fathom out what it is in the stored procedure that is doing this and would ...
I want to create a table in MS SQL Server 2005 to record details of certain system operations. As you can see from the table design below, every column apart from Details is is non nullable. CREATE ...
I love the new DATE datatype in SQL Server 2008, but when I compare a DATE field to a DATETIME field on a linked server (SQL 2005, in this case), like this: DECLARE @MyDate DATE SET @MyDate = CONVERT(...
How to determine if a Transaction is active i.e. before issuing Begin Transaction I want to ensure that no previous transaction are open.. the platform is VB6, MS-SQL Server 2000 and ADO 2.8