DECLARE @FirstName NVARCHAR(50),
@MiddleName NVARCHAR(50),
@LastName NVARCHAR(50),
@Email NVARCHAR(50),
@EmployeeID INT,
@FN NVARCHAR(MAX),
@MN NVARCHAR(MAX),
@LN NVARCHAR(MAX)
DECLARE cur CURSOR FOR
SELECT FirstName
, MiddleName
, LastName
, Username
FROM temp
OPEN cur
FETCH NEXT FROM cur
INTO @FirstName, @MiddleName, @LastName, @Email
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE cur2 CURSOR FOR
SELECT EmployeeID
, FirstName
, MiddleName
, LastName
FROM HRIS_Employees
OPEN cur2
FETCH NEXT FROM cur2
INTO @EmployeeID, @FN, @MN, @LN
WHILE @@FETCH_STATUS = 0
BEGIN
CASE
WHEN ((@FN = @FirstName
AND @MN = @MiddleName))
AND @LN = @LastName) THEN
UPDATE HRIS_EmployeeContacts
SET Email = @Email
WHERE HRIS_EmployeeContacts.EmployeeID = @EmployeeID
END
FETCH NEXT FROM cur2
INTO @EmployeeID, @FN, @MN, @LN
END
CLOSE cur2
DEALLOCATE cur2
FETCH NEXT FROM cur
INTO @FirstName, @MiddleName, @LastName, @Email;
END
CLOSE cur
DEALLOCATE cur
发生错误,表示“关键字'CASE'附近的语法不正确。”是否可以在SQL Server 2008的While循环中放置CASE表达式?
这应该是真正的答案,他的问题,这个问题仅仅是一个语法问题,这个问题应该重新措辞或关闭。 – GalacticJello