Я пытаюсь создать сценарий SQL для циклического перемещения по таблице и проверки наличия поля AppID в другой таблице.Затем, если он находит запись в другой таблице, он удаляет строку и устанавливает переменную, удаляет она или нет.
До сих пор я создал цикл, и он устанавливает переменную, если находит запись, однако я пыталсядобавить оператор удаления, и он выдаёт сообщение об ошибке «Неверный синтаксис рядом с« ELSE »»
Use APTLive
Go
declare @RowNum int, @CustId nchar(5), @Name1 nchar(25)
declare @ProdCount int
declare @PROD nchar(5)
select @CustId=MAX(ID) FROM TempAppTable --start with the highest ID
Select @RowNum = Count(*) From TempAppTable --get total number of records
WHILE @RowNum > 0 --loop until no more records
BEGIN
select @Name1 = AppID from TempAppTable where ID = @CustID --get other info from that row
select @ProdCount = Count(*) from ProductType where AppRefID = @Name1 --GET APP COUNT ProductType
print cast(@RowNum as char(12)) + ' ' + @Name1 + ' ' + cast(@ProdCount as char(3))
If @ProdCount > 0 SET @PROD = 'Y' DELETE FROM ProductType WHERE AppRefID = @Name1 ELSE SET @PROD = 'N'
select top 1 @CustId=ID from TempAppTable where ID < @CustID order by ID desc
set @RowNum = @RowNum - 1
END
Может кто-нибудь сообщить мне, почему я получаю эту ошибку?Это потому, что IF может выполнять только одну задачу, когда возвращает true или false?