如果做更新游标?(20分)

  • 主题发起人 主题发起人 liangexcel
  • 开始时间 开始时间
L

liangexcel

Unregistered / Unconfirmed
GUEST, unregistred user!
下面的这个存储过程,目的是根据排序结果,更新Series的值.但是执行不了.
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO




ALTER PROCEDURE [dbo].[ProUpdateSeries] AS


DECLARE @ITEM INT , @Series INT


--定义只读只进游标记录集
DECLARE CURTEST CURSOR FOR
SELECT A.ITEM , A.Series
FROM TNumBasic A , TtmpType B
WHERE A.typeID = B.TypeID
ORDER BY A.Isyear,A.Issue,A.IsNo
FOR UPDATE OF Series
--打开游标
OPEN CURTEST


FETCH NEXT FROM CURTEST --INTO @ITEM , @Series , @First0 , @First1 , @First2 , @First3 , @First4
SET @Series = 1
UPDATE TNumbasic Set Series = @Series FROM TNumBasic
WHERE CURRENT OF CURTEST

WHILE @@FETCH_STATUS = 0
BEGIN
SET @Series = 1
UPDATE TNumbasic Set Series = @Series FROM TNumBasic
WHERE CURRENT OF CURTEST

FETCH NEXT FROM CURTEST

END

CLOSE CURTEST
DEALLOCATE CURTEST
--SELECT A.* FROM TFirstLISTSum A,TFirstBASIC B WHERE A.ITEM = B.ITEM ORDER BY B.SERIES




GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
 
declare @n int,@values int

declare my_cursor cursor for
select value from t_1 order by value

open my_cursor
fetch next from my_cursor into @value

set @n = 0
while @@FETCH_STATUS = 0
begin
set @n = @n + 1
update t_1 set series = @n where value = @value
fetch next from my_cursor into @value
end

close my_cursor
deallocate my_cursor
 
接受答案了.
 
后退
顶部