テーブルにデータを挿入したいが、データベースに存在しないデータのみを挿入したい。
これが私のコードです:
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が最初にサブクエリを評価し、その後、ある時点で、ロックを保持せずに挿入を実行する場合とは異なります。