Tôi muốn chèn dữ liệu vào bảng của mình, nhưng chỉ chèn dữ liệu chưa tồn tại trong cơ sở dữ liệu của tôi.
Đây là mã của tôi:
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
Và lỗi là:
Msg 156, Cấp 15, Trạng thái 1, Thủ tục EmailsRecebidosInsert, Dòng 11
Cú pháp không chính xác gần từ khóa 'WHERE'.
insert
tuyên bố luôn luôn là một giao dịch duy nhất. Không phải là nếu SQL Server đánh giá truy vấn con trước và sau đó tại một số điểm sau đó và không giữ khóa, tiếp tục thực hiện thao tác chèn.