they said like "If you are using table variables in cursors, make sure you release them after the work is done"
Declare @objectdelete1 varchar(200)
Declare curiskeydeleted 1 cursor for (Select fieldname from dbo.SchemaField s where ClassID in (select ID
from dbo.SchemaClass es as sc left outer join dbo.RuleDepende ncy as rd on rd.ObjectName = sc.classfqn
where Rd.ruleID = @baseObject and sc.ClassStoreNa me not like 'base%' )And ISKey = 1)
OPEN curiskeydeleted 1
FETCH NEXT FROM curiskeydeleted 1 INTO @Objectdelete1
WHILE (@@FETCH_STATUS = 0)
BEGIN
Declare @Querydeleted1 varchar(3000)
select @querydeleted1= ''
Select @querydeleted1 = 'Select ' + 'b.'+ @objectdelete1 + ' From '+ @testname + ' n Right Join ' + @testnamebase + ' b ' +
'On' + Right(@WhereCla use1, Len(@WhereClaus e1) - 4) + ' Where'
+ Right(@Nullchec k, Len(@Nullcheck) - 4)
Delete @TempTableSecon dary
Insert Into @TempTableSecon dary (clmValue)
execute (@querydeleted1 )
--select * from @TempTableSecon dary
Insert Into SPResultset (GroupId,Change Type , FieldName, FieldValue, fieldtype, ruleid,rulename )
Select row_number( ) over(order by (select 0)), 'Deleted Record', @Objectdelete1, clmValue, 'KeyFields', @rule,@rulename From @TempTableSecon dary
FETCH NEXT FROM curiskeydeleted 1 INTO @Objectdelete1
END
CLOSE curiskeydeleted 1
DEALLOCATE curiskeydeleted 1
Comment