2013-04-25 50 views
2

我需要確認一個「棘手」的問題。 我在一個事務中,我在表中插入一些行。 之後,查詢同一個表,並根據結果,我插入另一個表。SQL Server - 在同一事務中選擇表中插入的行

我的問題是:插入第二個表時,第一個表中插入的行是否可見? (我需要插入的行是可見的)。

我的第一個刀片是:

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:我搜索了這個問題,但是當涉及多個事務(來自不同的客戶端)時,我只能找到關於這個問題的答案。

+0

一些示例代碼和您已經嘗試過的更多細節將幫助您獲得答案。 – Tanner 2013-04-25 10:48:45

+0

完成:無論如何這只是一個問題,我並沒有問如何去做:)謝謝! – darkdante 2013-04-25 11:01:28

回答

1

如果兩個插入都在同一個事務中,那麼是的。 如果沒有,那麼你在你所描述的多用戶場景。多用戶事實上具有誤導性,多事務會更加正確。

+0

謝謝。這似乎是一個明顯的答案,但我只是想確定一下,因爲我不想因爲我而在工作中出現問題:)祝你有美好的一天! – darkdante 2013-04-25 11:49:56

相關問題