2

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: この問題を検索しましたが、(異なるクライアントからの) 複数のトランザクションが関係している場合にのみ、この問題に関する回答を見つけることができました。

4

1 に答える 1