次の方法で共有


MERGE 機能の実装

データベースでは、特定の行がすでに存在するかどうかによって、挿入または更新の操作を実行する必要がある場合があります。

MERGE ステートメントを使用しない場合、Transact-SQL で使用できる 1 つのアプローチを次に示します。

UPDATE mytable SET col=@somevalue WHERE myPK = @parm  
IF @@ROWCOUNT = 0  
    INSERT mytable (columns) VALUES (@parm, @other values)  

マージを実装する別の Transact-SQL メソッド:

IF EXISTS (SELECT 1 FROM mytable WHERE myPK = @parm)  
    UPDATE....  
ELSE  
    INSERT  

ネイティブ コンパイル ストアド プロシージャの場合

DECLARE @i  int  = 0  -- or whatever your PK data type is  
UPDATE mytable SET @i=myPK, othercolums = other values WHERE myPK = @parm  
IF @i = 0  
   INSERT....  

こちらもご覧ください

ネイティブ コンパイル ストアド プロシージャの移行に関する問題
インメモリ OLTP でサポートされていない Transact-SQL の構造