-2
저장 프로 시저에서 커서를 사용하고 커서 이외의 다른 방법이 없습니다.SQL Server : 커서 성능
여기에 내 대본을 붙여 넣었습니다. 이 커서의 성능을 향상시키고 싶습니다. 약간의 배경. '이름'과 '액션'을 전달하고 커서는 다른 저장 프로 시저를 호출합니다. 모든 저장 프로 시저에서 다른 매개 변수 (ID)를 전달했습니다. 성능을 향상 시키십시오.
ALTER PROCEDURE dbo.Driver_sp
AS
TRUNCATE TABLE Driver_tbl
INSERT INTO Driver_tbl (ID,Name,Action,vipbatchid,processseq)
SELECT ID,Name,Action,batchid,ProcessSeq
FROM pcis_tbl
DECLARE @name varchar(20),
@action varchar(20),
@ID bigint
DECLARE cur CURSOR LOCAL FOR
SELECT id,name,action FROM Driver_tbl
ORDER BY processseq
OPEN cur
FETCH NEXT FROM cur INTO @id, @name,@action
WHILE @@FETCH_STATUS = 0
BEGIN
if (@name = 'A' and @action = 'Update')
BEGIN exec A_sp @ID END
else
if (@name = 'B' and @action = 'Update')
BEGIN exec B_sp @ID END
else
if (@name = 'C' and @action = 'Update')
BEGIN exec C_sp @ID END
else
if (@name = 'D' and @action = 'Update')
BEGIN exec D_sp @ID END
fetch next FROM cur INTO @id, @name,@action
END
CLOSE cur
DEALLOCATE cur
감사합니다.
에 TSQL, 변경 CURSOR 선언을 사용하고 있습니다. – Blindy
Transact SQL입니까? –
저장된 procs 사용자 정의 함수를 만들면 명시 적 커서가 필요하지 않습니다. – TheCodeKing