我想将数据插入表中,但只插入数据库中不存在的数据。
这是我的代码:
ALTER PROCEDURE [dbo].[EmailsRecebidosInsert]
(@_DE nvarchar(50),
@_ASSUNTO nvarchar(50),
@_DATA nvarchar(30) )
AS
BEGIN
INSERT INTO EmailsRecebidos (De, Assunto, Data)
VALUES (@_DE, @_ASSUNTO, @_DATA)
WHERE NOT EXISTS ( SELECT * FROM EmailsRecebidos
WHERE De = @_DE
AND Assunto = @_ASSUNTO
AND Data = @_DATA);
END
错误是:
消息156,级别15,状态1,过程EmailsRecebidosInsert,第11行
关键字“ WHERE”附近的语法错误。
insert
语句始终是单个事务。好像SQL Server先评估子查询,然后再在以后的某个点(不持有锁)继续执行插入操作。