我需要做一个非常简单的任务:仅当表中不存在记录时才执行 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
这将不起作用,因为"如果不存在"无效。
在一个 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' );