【发布时间】:2018-10-19 07:23:04
【问题描述】:
我正在使用StoredProcedure 在数据库中插入DataTable,但问题是,它插入的实际条目数是要插入的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
【问题讨论】:
-
您不是简单地从代码中执行 SP 两次吗?
-
请告诉我们,您是如何从您的 asp.net 应用程序调用 Sproc 的
-
你的意思是
@RecoveryIDs是数据表,还是你在后面的代码中填写DataTable?请解释您如何从页面的代码隐藏中执行该过程。 -
我试图将代码粘贴到 cmets 中,但它超出了最大字符数限制...请您通过 Skype/Teamviewer ping 我。