代码之家  ›  专栏  ›  技术社区  ›  Mark

Access97:如果不存在,则插入

  •  0
  • Mark  · 技术社区  · 8 年前

    我需要做一个非常简单的任务:仅当表中不存在记录时才执行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子句中执行此操作的正确方法是什么?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Gordon Linoff    8 年前

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