我有两个表:缺陷和缺陷数据。每个缺陷可能有也可能没有一个或多个缺陷数据。因此,DefectData将DefectId列作为外键。
两个表中的Id都是自动增量标识。
我遇到的问题是,当我想插入一个新的缺陷及其缺陷数据时,首先插入缺陷并获取一个Id,但我不知道该ID是给DefectData的。我的解决方案是从匹配插入数据的缺陷中选择以获得Id。
设置IdentityInsert然后插入我自己的ID将无法正常工作,因为这是由网络服务器运行的,并且可能有并发呼叫(我在这里吗?)。
提前致谢。
答案 0 :(得分:5)
基本模式是使用SCOPE_IDENTITY()从缺陷
获取新的行IDBEGIN TRAN
INSERT Defect ()
VALUES (...)
INSERT DefectData (DefectID, AdditionalNotes, ...)
VALUES (SCOPE_IDENTITY(), @AdditionalNotes, ...)
COMMIT TRAN