0

我需要做一个非常简单的任务:仅当表中不存在记录时才执行 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

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

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

4

1 回答 1

2

您可以将其构建为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' );
于 2017-11-14T19:15:34.043 回答