ฉันต้องการแทรกข้อมูลลงในตารางของฉัน แต่แทรกเฉพาะข้อมูลที่ไม่มีอยู่ในฐานข้อมูลของฉัน
นี่คือรหัสของฉัน:
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, อีเมลกระบวนงาน, รายงานบรรทัดที่ 11,
ไวยากรณ์ที่ไม่ถูกต้องใกล้กับคำหลัก 'WHERE'
insert
คำสั่งเดียวจะเป็นรายการเดียวเสมอ ไม่ใช่ว่า SQL Server จะประเมินคิวรีย่อยก่อนจากนั้นในบางจุดในภายหลังและหากไม่มีการล็อกก็จะทำการแทรกต่อไป