我需要确认一个“棘手”的问题。我在一个事务中,我在表中插入一些行。之后,查询同一个表,并根据结果,我插入另一个表。
我的问题是:在第二个表中插入时,第一个表中插入的行是否可见?(我需要插入的行可见)。
我的第一个插入是:
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:我搜索了这个问题,但是当涉及多个事务(来自不同的客户端)时,我只能找到有关此问题的答案。