我在一个存储过程中运用了游标来做调用,但是可能是编写的问题,我调用的表里agent_code最多只有4000条,可是运行时却一直不停,像一个死循环,请大家尽快帮我修改一下,谢谢create procedure agent_efyc116
as
declare @agent_code varchar(10)
declare @ybjj decimal(17,2)
set @ybjj = dbo.agent_efyc111(@agent_code)
declare cur_agent2_list cursor for
select agent_code
from dbo.ag1tab where status = 'A' open cur_agent2_list fetch next from cur_agent2_list into @agent_code while @@fetch_status = 0begin
insert into dbo.lsb (agent_coed, ybjj)
values(@agent_code, @ybjj)
endclose cur_agent2_list
deallocate cur_agent2_list
exec agent_efyc116
as
declare @agent_code varchar(10)
declare @ybjj decimal(17,2)
set @ybjj = dbo.agent_efyc111(@agent_code)
declare cur_agent2_list cursor for
select agent_code
from dbo.ag1tab where status = 'A' open cur_agent2_list fetch next from cur_agent2_list into @agent_code while @@fetch_status = 0begin
insert into dbo.lsb (agent_coed, ybjj)
values(@agent_code, @ybjj)
endclose cur_agent2_list
deallocate cur_agent2_list
exec agent_efyc116
insert into dbo.lsb (agent_coed, ybjj)
values(@agent_code, @ybjj)fetch next from cur_agent2_list into @agent_code --加上end
AS
SET NOCOUNT ON
DECLARE @AGENT_CODE VARCHAR(10)
DECLARE @YBJJ DECIMAL(17,2)
SET @YBJJ = DBO.AGENT_EFYC111(@AGENT_CODE)
DECLARE CUR_AGENT2_LIST CURSOR LOCAL STATIC FORWARD_ONLY READ_ONLY
SELECT AGENT_CODE
FROM DBO.AG1TAB WITH(NOLOCK)
WHERE STATUS = 'A'
OPEN CUR_AGENT2_LIST
FETCH NEXT FROM CUR_AGENT2_LIST INTO @AGENT_CODE
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO DBO.LSB (AGENT_COED, YBJJ)
VALUES(@AGENT_CODE, @YBJJ)
FETCH NEXT FROM CUR_AGENT2_LIST INTO @AGENT_CODE
END
CLOSE CUR_AGENT2_LIST
DEALLOCATE CUR_AGENT2_LIST