Использование VBA для вставки в базу данных Microsoft SQL
SELECT ALL *
FROM [MarketAnalysis].[dbo].[ReviewDatabase]
WHERE [VESSEL] = 'BOATY'
AND [LOAD DATE] BETWEEN DATEADD(day, -3,'20190227') AND DATEADD(day, +3,'20190227')
ORDER BY [ID] DESC
например, выше, если вставить судно, которое соответствует имени и дате +/- 3 дня, пусть не так, как это соответствует чему-то уже в БД
Это между оператором может не совсем то, что вы думаете. Если тип данных вашего столбца дня - это дата и время, он не вернет никаких строк, которые в +3 дня, потому что метка времени будет больше, чем начало дня. Когда дело доходит до дат, расчеты (и многое другое) между ними могут быть действительно проблематичными. sqlblog.org/2011/10/19/…





Используйте IF NOT EXISTS и удалите ORDER BY
IF NOT EXISTS(SELECT *
FROM [MarketAnalysis].[dbo].[ReviewDatabase]
WHERE [VESSEL] = 'BOATY'
AND [LOAD DATE] BETWEEN DATEADD(day, -3,'20190227') AND DATEADD(day, +3,'20190227'))
BEGIN
--your insert statement
END
Фантастика, есть ли способ получить ответ, если он существует? то есть Msgbox "это уже есть в базе данных"
Ответ на этот вопрос содержится в дополнительном вопросе из OP здесь.
@Larnu
ALL *является допустимым синтаксисом T-SQL, хотя обычно избыточным