那么你不应该使用
while
循环。它可以通过简单的
if-else
声明。请使用以下代码执行相同操作:
..
@currentAccID char(21),
@currentUserID char(21),
@UserID1 char(21),
@UserID2 char(21),
@UserID3 char(21),
@Case smallint,
...
IF EXISTS(SELECT NULL FROM OLD_Users WHERE oldAccID = @currentAccID AND (UserID1 = @userid OR UserID2 = @userid OR UserID3 = @userid))
BEGIN
SET @OldORNew = 1
IF (@Case = 10 OR @Case = 20)
BEGIN
SELECT TOP 1 @Equipment = Equipment FROM Users WHERE UserID = 'OLD_NormalUser'
END
ELSE IF (@Case = 12 OR @Case = 22)
BEGIN
SELECT TOP 1 @Equipment = Equipment FROM Users WHERE UserID = 'OLD_MediumUser'
END
ELSE IF (@Case = 13 OR @Case = 23)
BEGIN
SELECT TOP 1 @Equipment = Equipment FROM Users WHERE UserID = 'OLD_HighUser'
END
ELSE IF (@Case = 14 OR @Case = 24)
BEGIN
SELECT TOP 1 @Equipment = Equipment FROM Users WHERE UserID = 'OLD_UltraUser'
END
END
ELSE
BEGIN
SET @OldORNew = 0
IF (@Case = 10 OR @Case = 20)
BEGIN
SELECT TOP 1 @Equipment = Equipment FROM Users WHERE UserID = 'NormalUser'
END
ELSE IF (@Case = 12 OR @Case = 22)
BEGIN
SELECT TOP 1 @Equipment = Equipment FROM Users WHERE UserID = 'MediumUser'
END
ELSE IF (@Case = 13 OR @Case = 23)
BEGIN
SELECT TOP 1 @Equipment = Equipment FROM Users WHERE UserID = 'HighUser'
END
ELSE IF (@Case = 14 OR @Case = 24)
BEGIN
SELECT TOP 1 @Equipment = Equipment FROM Users WHERE UserID = 'UltraUser'
END
END
...
INSERT INTO NewUser (UserID,Case,Equipment ......) VALUES (@UserID,@Case,@Equipment .......)