In Recent I faced the problem whenever
we need to move the DB Changes to Production environment we have some table in the Development environment .we
have added some columns to table in Development. we need to change definitions in production
environment also .At this time we are some little bit of problem facing . Today I come up
with the solution we need to create the DDL trigger on Database level. Whenever
we are moving the DB Changes to Production environment we can cross check audit
table.
--Create Student Table
create table Student
(
id int identity(1,1) ,
Name varchar(100)
)
--Create Audit Table
create table Audit
(
EventType nvarchar(max),
Command nvarchar(max),
Createdon datetime
)
--Create DDL Trigger on
Database
create trigger AuditDBChanges
on database
for create_table,alter_table,drop_table
as
begin
DECLARE
@EventData XML = EVENTDATA();
insert into Audit (EventType,Command,Createdon)
select @EventData.value('(/EVENT_INSTANCE/EventType)[1]', 'NVARCHAR(100)'),
@EventData.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'NVARCHAR(MAX)'),
getdate()
end
--Add Marks column to
Student Table
alter table Student add Marks int
-- drop table
drop table Student
--Check the Adit
Information
-- Disable trigger from Databse
disable trigger AuditDBChanges
on database
--Enable trigger from
Databse
Enable trigger AuditDBChanges
on database
--Drop trigger from
Databse
drop trigger AuditDBChanges
on database
--For
more information about trigger event types
select * from sys.trigger_event_types
Comments
Post a Comment