USE [Kn_online]
GO /** Object: StoredProcedure [dbo].[LOAD_KNIGHTS_SIEGE_WARFARE_USERS] Script Date: 04/12/2014 13:51:24 **/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[LOAD_KNIGHTS_SIEGE_WARFARE_USERS] @strUserId char(25) AS /* Author : AKUMA Update : 25.10.2009 - 14:23 */ DECLARE @Knights smallint DECLARE @MasterKnightsID smallint DECLARE @CSWFreeLoyaltyUpdateTime datetime DECLARE @AddedLoyalty int DECLARE @IsOnline tinyint SET @AddedLoyalty = 25 SELECT @Knights = Knights FROM USERDATA WHERE strUserId = @strUserId SELECT @MasterKnightsID = sMasterKnights FROM KNIGHTS_SIEGE_WARFARE WHERE sCastleIndex = 1 IF (@Knights <> 0) AND (@Knights = @MasterKnightsID) BEGIN SELECT @CSWFreeLoyaltyUpdateTime = CSWFreeLoyaltyUpdateTime FROM USERDATA WHERE strUserId = @strUserId IF DATEDIFF(day,@CSWFreeLoyaltyUpdateTime,GETDATE()) >= 1 UPDATE USERDATA SET Loyalty = Loyalty + @AddedLoyalty,CSWFreeLoyaltyUpdateTime = GETDATE() WHERE strUserId = @strUserId ELSE IF @CSWFreeLoyaltyUpdateTime IS NULL UPDATE USERDATA SET Loyalty = Loyalty + @AddedLoyalty,CSWFreeLoyaltyUpdateTime = GETDATE() WHERE strUserId = @strUserId DECLARE KSWU_CURSOR CURSOR FOR SELECT strUserId FROM USERDATA WHERE Knights = @MasterKnightsID OPEN KSWU_CURSOR FETCH NEXT FROM KSWU_CURSOR INTO @strUserId WHILE @@FETCH_STATUS = 0 BEGIN SET @CSWFreeLoyaltyUpdateTime = 0 SET @IsOnline = 0 SELECT @IsOnline = COUNT(strCharID) FROM CURRENTUSER WHERE strCharID = @strUserId IF @IsOnline = 0 BEGIN SELECT @CSWFreeLoyaltyUpdateTime = CSWFreeLoyaltyUpdateTime FROM USERDATA WHERE strUserId = @strUserId IF DATEDIFF(day,@CSWFreeLoyaltyUpdateTime,GETDATE()) >= 1 UPDATE USERDATA SET Loyalty = Loyalty + @AddedLoyalty,CSWFreeLoyaltyUpdateTime = GETDATE() WHERE strUserId = @strUserId ELSE IF @CSWFreeLoyaltyUpdateTime IS NULL UPDATE USERDATA SET Loyalty = Loyalty + @AddedLoyalty,CSWFreeLoyaltyUpdateTime = GETDATE() WHERE strUserId = @strUserId END FETCH NEXT FROM KSWU_CURSOR INTO @strUserId END CLOSE KSWU_CURSOR DEALLOCATE KSWU_CURSOR END必須declaret標量變量EXEC
EXEC LOAD_KNIGHTS_SIEGE_WARFARE_USERS @strUserid
當我使用它在其他程序錯誤:必須聲明標量變量