2016-11-02 6 views
0

既存のエントリがあるかどうかに基づいて、更新または挿入するクエリを作成するのが難しいです。条件付きの更新/挿入 - 誤った構文 'END'の近く

私が実行している現在のクエリは次のようになります。

IF EXISTS (SELECT 1 FROM dbContactEmails WHERE contID = 1) 
BEGIN 
    UPDATE dbContactEmails 
    SET contEmail = '[email protected]' 
    WHERE contID = 1 
    AND contCode = 'HOME' 
END 
ELSE 
    INSERT INTO dbContactEmails (contID, contEmail, contCode, contOrder, contActive) 
    VALUES (1, '[email protected]', 'HOME', 0, 1) 
END 

残念ながら、これは誤り「『終了』の近くに不正な構文は、」スローされると、動作しません。

答えて

1

入れはあなたに感謝し、ELSE問題を修正しています

IF EXISTS (SELECT 1 FROM dbContactEmails WHERE contID = 1) 
BEGIN 
    UPDATE dbContactEmails 
    SET contEmail = '[email protected]' 
    WHERE contID = 1 
    AND contCode = 'HOME' 
END 
ELSE 
BEGIN 
    INSERT INTO dbContactEmails (contID, contEmail, contCode, contOrder, contActive) 
    VALUES (1, '[email protected]', 'HOME', 0, 1) 
END 
+0

後に開始します。 –