USE SCHOOL GO IF OBJECT_ID('P_UPDATE_STU','P') ISNOTNULL DROPPROCEDURE P_UPDATE_STU GO CREATEPROCEDURE P_UPDATE_STU AS BEGIN BEGIN TRY SET NOCOUNT ON--关闭显示受影响行数消息
DECLARE @IDBIGINT--定义两个变量 DECLARE @AGE INT
DECLARE STU_CUR CURSORFOR--定义游标 SELECT STU.ID,stu.AGE FROM dbo.GRADE GR INNERJOIN dbo.STUDENT STU ON GR.STUDENTID=STU.ID
OPEN STU_CUR --打开游标 FETCHNEXTFROM STU_CUR INTO @ID,@AGE --获取第一行赋值给两个变量 WHILE @@FETCH_STATUS=0 BEGIN UPDATE dbo.STUDENT SET AGE=@AGE+1WHEREID=@ID FETCHNEXTFROM STU_CUR INTO @ID,@AGE END END TRY BEGIN CATCH SELECT ERROR_NUMBER(),ERROR_PROCEDURE(),ERROR_MESSAGE() END CATCH CLOSE STU_CUR DEALLOCATE STU_CUR END