Что является причиной неправильного синтаксиса возле ошибки SELECT? - PullRequest
0 голосов
/ 03 октября 2019

Я получаю неправильную синтаксическую ошибку рядом с Select в этом запросе. Цель здесь - удалить строки в alohaftplog партиями по 1000 штук.

DECLARE @Batch INT = 1000
DECLARE @DateLimit DATETIME = CONVERT(VARCHAR(15), GETDATE() - 30, 101)
DECLARE @Cnt INT = 0

SET @Cnt = SELECT COUNT(*) FROM AlohaFtpLog WHERE DATE < @DateLimit 

WHILE @Cnt > 0
BEGIN
    DELETE TOP(@Batch) FROM AlohaFtpLog WHERE DATE < @DateLimit
    SET @Cnt = SELECT COUNT(*) FROM AlohaFtpLog WHERE DATE < @DateLimit
END

Ответы [ 3 ]

3 голосов
/ 03 октября 2019
SET @Cnt = SELECT COUNT(*) FROM AlohaFtpLog WHERE DATE < @DateLimit

должно быть:

SET @Cnt = (SELECT COUNT(*) FROM AlohaFtpLog WHERE DATE < @DateLimit)

ИЛИ:

SELECT @Cnt = COUNT(*) FROM AlohaFtpLog WHERE DATE < @DateLimit
1 голос
/ 03 октября 2019
SELECT @Cnt = COUNT(*) FROM AlohaFtpLog WHERE DATE < @DateLimi
0 голосов
/ 03 октября 2019

Я почти уверен, что вам нужен набор скобок.

SET @Cnt = (SELECT COUNT(*) FROM AlohaFtpLog WHERE DATE < @DateLimit)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...