1 つの「トリッキーな」質問の確認が必要です。私は、テーブルにいくつかの行を挿入するトランザクションにいます。その後、同じテーブルにクエリを実行し、結果に基づいて別のテーブルに挿入します。
私の質問は次のとおりです。最初のテーブルに挿入された行は、2 番目のテーブルに挿入するときに表示されますか? (挿入された行を表示する必要があります)。
私の最初の挿入は:
INSERT INTO BioUsers Select NewId(),A.BadgeNr,GetDate(),A.PersNr
FROM (
SELECT CB.Persnr,C.BadgeNr FROM CurBioDistribution CB
INNER JOIN CUR C ON C.PersNr = CB.PersNr
WHERE
CB.[Type] = 1
AND CB.GroupNr = @Nr
AND CB.PersNr IN (SELECT PersNr FROM CurBioDistribution WHERE GroupNr = @Nr)
EXCEPT (SELECT PersNr, BadgeId as BadgeNr FROM BioUsers)
) A
フィールドを含む別のテーブルの最初のテーブルにすべての BioUserID を挿入したいのですBioUserID
が、それらがまだそこにない場合に限ります。したがって、最初のものから選択すると、挿入された行も取得したいと思います。
PS: この問題を検索しましたが、(異なるクライアントからの) 複数のトランザクションが関係している場合にのみ、この問題に関する回答を見つけることができました。