1

次の手順を実行しています。

  • マージステーション。値が存在しない場合、merge ステートメントは値をビューに挿入します。
  • ステーを選択します。挿入したレコードを選択するには

ただし、選択クエリは空白を返します。サンプルコードを以下に示します。

declare @now AS DATETIME = GETUTCDATE(),
        @uuid AS INT = 1;

MERGE A.V_Table AS T
(
  Select 
     A1,
     A2
  FROM B.Table
)S
on T.A1 = T1.A1
   and T.A2 = T1.A2
when not matched by target then
insert
(
  A1,
  A2,
  UpdateUUID,
  UpdateTimeStamp
)
values
(
 s.a1,
 s.a2,
 @uuid,
@now
);

select *
from A.V_Table
where updateuUid = @uuid and UpdateTimeStamp = @now;

@now と @uuid の値を出力して選択クエリで使用すると、レコードが返されます。ただし、上記のように実行された場合はそうではありません。

なぜこれがそうであるべきか考えていますか?選択クエリは、マージが完了した後にのみ実行されませんか?

4

1 に答える 1