Я хочу вставити дані в свою таблицю, але вставити лише ті дані, які ще не існують у моїй базі даних.
Ось мій код:
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
Неправильний синтаксис біля ключового слова "ДЕ".
insert
виписка - це завжди одна операція. Це не так, якби SQL Server спочатку оцінює підзапит, а потім у якийсь пізній момент і, не тримаючи блокування, продовжує робити вставку.