我需要确认一个“棘手”的问题。 我在一个事务中,我在表中插入一些行。 之后,查询同一个表,并根据结果,我插入另一个表。
我的问题是:插入第二个表时第一个表中插入的行是否可见? (我需要插入的行可见)。
我的第一个插入是:
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 :(得分:1)
如果两个插入都在同一个事务中,那么是。 如果没有,那么您就处于您所描述的多用户场景中。多用户实际上是误导,多交易会更正确。