I'm working on a legacy project which connect to an older version sql server , my SQL Server version is 2008 R2, I encountered a problem which when I tried to insert the records within a datawindow in a PowerBuilder program, it triggered a trigger in a table , at the same time it update another table which trigger another trigger as well, it went wrong in the second table trigger. the tricky part was debugging a trigger ,any idea how to deal with this problem?
my first trigger
ALTER Trigger [table1_Insert]
On [table1] For Insert
As
.........
.........
declare @ln_lestnum numeric(12,4)
declare @ln_num numeric(9,3)
if exists (select att_no from inserted where source='in' and att_no <> '' and LOWER(LEFT( att_no, 3)) ='bac' )
begin
-- here is trigger anotehr table update trigger
update s
set s.process_num = s.process_num + i.process_num,
s.is_process = case when s.back_num - i.process_num > 0.000001 then 'yes' else 'ok' end
from inserted i,secondtable s
where ltrim(rtrim(i.att_no)) = ltrim(rtrim(s.back_no)) and
i.prod_no = s.prod_no and
i.prod_add = s.prod_add and
i.batch_no = s.batch_no
if @@rowcount = 0
begin
print('errors encountered update returning goods numbers')
eturn
end
end
here is my second trigger for update
ALTER trigger [secondtable_update]
on [secondtable]
for update
as
declare @ln_lestnum numeric(9,3)
declare @ln_newbacknum numeric(9,3)
declare @ln_oldbacknum numeric(9,3)
declare @ls_prodno char(8),@ls_batchno char(12),@ls_prodadd char(12)
select @ls_prodno = i.prod_no,@ls_batchno=i.batch_no,@ls_prodadd=prod_add,
@ln_newbacknum = i.back_num from inserted i
select @ln_oldbacknum = d.back_num from deleted d
--here is I had trying to print the variable value for kinda debugging but it doesn't work, all the values seems were null or empty
print('prodno '+@ls_prodno+' batchno'+@ls_batchno+' prod_add'+ @ls_prodadd)
return
..........
any helps or suggestions will be appreciated .