sql server - Firing trigger for bulk insert -
alter trigger [dbo].[tr_o_salesman_ins] on [dbo].[o_salesman] after insert begin -- set nocount on added prevent result sets -- interfering select statements. set nocount on; -- insert statements trigger here declare @slsman_cd nvarchar(20) declare @slsman_name nvarchar(20) select @slsman_cd = slsman_cd,@slsman_name=slsman_name inserted if not exists(select * o_salesman_user slsman_cd = @slsman_cd) begin insert o_salesman_user(slsman_cd, password, user_cd) values(@slsman_cd, @slsman_cd,@slsman_name ) end end
this trigger written table(o_salesman)
fetch few columns , insert 1 table(o_salesman_user)
. presently bulk data getting inserted o_salesman
table through stored procedure, trigger getting fired once , o_salesman_user
having 1 record inserted each time whenever stored procedure being executed,i want trigger run after each , every record gets inserted o_salesman
such both tables should have same count not happening..so please let me know can modified in trigger achieve same....
you can use cursor follows:
create trigger trg_insertstuff on [o_salesman] after insert declare @slsman_cd nvarchar(20) declare @slsman_name nvarchar(20) declare db_cursor cursor select slsman_cd, slsman_name inserted open db_cursor fetch next db_cursor @slsman_cd , @slsman_name while @@fetch_status = 0 begin if not exists(select * o_salesman_user slsman_cd = @slsman_cd) begin insert o_salesman_user(slsman_cd, password, user_cd) values(@slsman_cd, @slsman_cd,@slsman_name ) end fetch next db_cursor @slsman_cd , @slsman_name end close db_cursor deallocate db_cursor
Comments
Post a Comment