Access97: вставить INTO, если не существует

Мне нужно сделать очень простую задачу: выполнить запрос INSERT INTO, только если запись не существует в таблице. Я нашел много подсказок, но ни один из них не работает в SQL Access97.

Пример:

IF NOT EXISTS ( SELECT 1 FROM Users WHERE FirstName = 'John' AND LastName = 'Smith' )
BEGIN
    INSERT INTO Users (FirstName, LastName) VALUES ('John', 'Smith')
END

это не будет работать, потому что ЕСЛИ NOT EXISTS недействительно.

Как правильно сделать это в одном предложении SQL?

1 ответ

Решение

Вы можете встроить это в insert . .. select:

INSERT INTO Users (FirstName, LastName)
    SELECT TOP 1 'John', 'Smith'
    FROM Users
    WHERE NOT EXISTS ( SELECT 1 FROM Users WHERE FirstName = 'John' AND LastName = 'Smith' );
Другие вопросы по тегам