Я считаю, что курсор, используемый в этом коде, является причиной некоторых серьезных проблем с производительностью, однако я новичок в TSQL.
Следующий скрипт выполняется на SQL SERVER 2008. Я пытаюсь повторить его, поэтому вместо этого я использую операторы JOIN, однако я не смог сделать это успешно.
DECLARE AIRAMSDET CURSOR FOR
SELECT BILL, RECIEPT, NAME
FROM Client_Table
WHERE IsProcessed = 1
AND TYPE IN ('Sub','First_Time','Old') AND LEN(BILL) > 1
OPEN AIRAMSDET
FETCH AIRAMSDET into @VARBILL, @VARRECIEPT, @VARNAME
WHILE @@Fetch_Status = 0
BEGIN
UPDATE archieve
SET entry = left(@VARBILL + '- '+ @VARNAME)
WHERE archiveID = @VARBILL
END