这是我的表格结构
当我将数据插入第一个表时,它将在表2中有多个条目 我正在使用代码 获取ID
Select MAX(ID)+1 From Table1
插入数据
Insert Into Table1 Values('1','abc','add1');
Insert into table2 values('1','med','english');
Insert into table2 values('1','eng','english');
代码适用于单台计算机,但是当我们在多个终端的应用程序中使用时,它会插入错误的数据,即表2中另一个id的数据
答案 0 :(得分:3)
您需要确保table1的ID列是标识列,然后执行以下操作:
DECLARE @ID INT
INSERT table1 ([columns])
VALUES (...)
SELECT @ID = SCOPE_IDENTITY()
INSERT table2 (table1ID, [columns])
VALUES (@ID, ...)
您可以阅读有关SCOPE_IDENTITY()here的更多信息。
MAX(ID)
将包含由其他进程创建的ID值,这就是您的第二个插入内容混合数据的原因。