Неверный синтаксис рядом с '=' рядом с WHILE LOOP

Я написал ниже скрипт, но когда я пытаюсь его выполнить, выведите ниже err -

Сообщение 102, Уровень 15, Состояние 1, Строка 6 Неверный синтаксис рядом с '='.

declare @PostDate date
declare @PostID int
DECLARE @count INT
DECLARE @updatecounter INT

WHILE exists (select top 1 @PostDate = postdate from dateTemp order by postdate desc)

BEGIN

PRINT @PostDate
SELECT @count = COUNT(*) from cs_posts_bkup20160209 where CONVERT(date,Postdate) = @PostDate
print @COUNT
SET @updatecounter = 1

   WHILE (@count>=1)

       BEGIN
    select top 1 @PostID = PostId from cs_posts_bkup20160209 where CONVERT(date,Postdate) = @PostDate and Postorder IS NULL order by postdate desc
    pRINT @POSTID
    --update cs_posts_bkup20160209 set PostOrder = @updatecounter where postid= @PostID
    SET @updatecounter = @updatecounter + 1 
    SET @count = @count - 1
    Print @updatecounter
    Print @count
      END

DELETE from dateTemp where Postdate = @PostDate
END
GO

что мне здесь не хватает...

пожалуйста помоги!!

1 ответ

Если вы присваиваете переменную в выборе, выбор также не будет возвращать набор результатов - и набор результатов требуется для EXISTS,

Самым простым решением, вероятно, является повторный запуск запроса, который устанавливает @PostDate внутри вашего цикла и удалите присвоение из запроса, используемого циклом while.

Другие вопросы по тегам