0
入れ子のwhileループでレコードを挿入しようとしています.BelowはSQLサーバーのストアドプロシージャであり、2つのレコードのみを挿入するため、4つのレコードを挿入する必要があります。何がここで間違っている。前もって感謝します。入れ子のWhileループでの挿入
create proc Insert_LeadDistributionClient
--Insert_LeadDistributionClient
@LeadDistribution_code varchar(1000) = '100,101'
,@Client_code varchar(1000) ='1,2'
,@medium_code varchar(1000) = '10,11'
as
begin
declare @LeadDistributionLength int
declare @ClientLength int
declare @MediumLength int
declare @SingleLeadDistCode int
declare @SingleClientCode int
declare @SingleMediumCode int
select * into #LeadDistributionCode from dbo.Split(@LeadDistribution_code , ',')
select * into #ClientCode from dbo.Split(@Client_code , ',')
select * into #MediumCode from dbo.Split(@medium_code , ',')
set @LeadDistributionLength = (select count(*) from #LeadDistributionCode)
set @ClientLength = (select count(*) from #ClientCode)
set @MediumLength = (select count(*) from #MediumCode)
while(@ClientLength <> 0)
begin
set @SingleClientCode = (select top 1 [data] from #ClientCode)
while(@LeadDistributionLength <> 0)
begin
set @SingleLeadDistCode = (select top 1 [data] from #LeadDistributionCode)
insert into leaddistributionclient(LeadDistribution_code,Client_code,Medium_Code , LeadRatio_Count , CurrentLead_Count,Is_Sent)
select @SingleLeadDistCode,@SingleClientCode,1 ,0 ,0 ,0
delete top (1) from #LeadDistributionCode
set @LeadDistributionLength = @LeadDistributionLength -1
end
delete top (1) from #ClientCode
set @ClientLength = @ClientLength - 1
end
drop table #LeadDistributionCode
drop table #ClientCode
drop table #MediumCode
end
は、きっとあなたは、いくつかのprint文を追加し、SSMS – Rob
ドン」に何が起こっているのかを見ることができますしながら、最初の先頭に次の行を追加
この行を削除選択したデータについて何も知らなくても、それについて何かを言うのはかなり難しいと思いますか? –
これをデバッグするときに何を学んだのですか? – GuidoG