Access97:如果不存在则插入

Access97: INSERT INTO if not exists

我需要做一个非常简单的任务:仅当 table 中不存在记录时才执行 INSERT INTO 查询。 我在那里发现了很多提示,但是 none 其中的提示在 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

这将不起作用,因为 IF NOT EXISTS 无效。

在一个 SQL 子句中执行此操作的正确方法是什么?

您可以将其构建到 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' );