Неверный синтаксис рядом с '=' рядом с 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.