Я вставляю DataTable
в базу данных, используя StoredProcedure
, но проблема в том, что она вставляет вдвое больше действительного числа записей DataTable
для вставки, процедура ниже, пожалуйста, помогите мне, если яиспользуя неправильный подход, зачем дублировать строки?Возврат, который требуется, работает нормально.Заранее спасибо
ALTER PROCEDURE [dbo].[proc_InsertStore_Recvry]
(@dt_Recovery Recovery_Store READONLY)
AS
Declare @RecoveryIDs as Table (IDs int, ClientIds int)
declare @StoreID int
declare @ClientID int
declare @Arrears decimal(18, 2)
declare @NetDues decimal(18, 2)
declare @Received decimal(18, 2)
Declare @RecoveryRecID int
begin
select * into #tempTable from @dt_Recovery
declare @Count int
set @Count= (select COUNT(*) from #tempTable)
while(@Count > 0)
begin
set @Count = @Count-1
set @ClientID = (Select top 1 ClientID from #tempTable)
set @StoredID = (Select top 1 StoredID from #tempTable where ClientID=@ClientID)
set @Arrears = (Select top 1 Arrears from #tempTable where ClientID=@ClientID)
set @NetDues = (Select top 1 NDues from #tempTable where ClientID=@ClientID)
set @Received = (Select top 1 Received from #tempTable where ClientID=@ClientID)
Insert into tblRecovery (StoreID, ClientID, Arrears, NetDues, Received)
values (@StoreID,@ClientID,@Arrears,@NetDues,@Received)
select @RecoveryID = Scope_Identity()
insert into @RecoveryIDs (IDs,ClientIds) values (@RecoveryID, @ClientID )
delete from #tempTable where ClientID=@ClientID
end
Select * from @RecoveryIDs