Вы просто хотите обновить все записи empAddress, где есть соответствующая запись сотрудника, верно?Для этого вам не нужен цикл:
UPDATE empAddress SET thumbID = NEWID()
FROM empAddress
INNER JOIN employees ON employees.empID = empAddress.empID
Или, если предположить, что у каждого empAddress есть empID, просто:
UPDATE empAddress SET thumbID = NEWID()
Циклический способ сделать это в SQL -используйте курсор, но посмотрите, сколько людей кричат на меня, даже упоминая, что курсоры существуют.(Они неэффективны, но полезно знать об IMO.) Вот пример, который позволяет вам вызывать NEWID () один раз для идентификатора сотрудника, поэтому все адреса одного и того же сотрудника получают один и тот же уникальный идентификатор:
DECLARE cur CURSOR FOR
SELECT empID, NEWID() FROM employees
DECLARE @currentEmpID INT
DECLARE @currentNewID UNIQUEIDENTIFIER
OPEN cur
FETCH NEXT FROM cur
INTO @currentEmpID, @currentNewID
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE empAddress
SET thumbID = @currentNewID
WHERE empID = @currentEmpID
FETCH NEXT FROM cur
INTO @currentEmpID, @currentNewID
END
CLOSE cur;
DEALLOCATE cur;
empID thumbID
1 FF358006-C41E-4632-BEB2-DF95E424B8CB
1 FF358006-C41E-4632-BEB2-DF95E424B8CB
2 DD19753C-1B4B-4D84-89F1-562DB4406A0F
2 DD19753C-1B4B-4D84-89F1-562DB4406A0F