我需要将数据从一个表复制到另一个表,但是如果可能的话,请保留第一个表的ID,如果第二个表中已经存在第一个表的ID,那么我将需要获取下一个可用的ID。
现在,代码正在执行以下操作:
_model.CheckIdExists(id);
if (idExists)
{
model.GetNextAvailableId(out newId);
Id = newId;
}
和sql :(类似这样的东西)
INSERT INTO {0}
(ID,
NAME,
FIRST,
ADDR1)
SELECT @newId,
NAME,
FIRST,
ADDR1...
因此它对每个数据执行此操作,然后对每个ID运行一个INSERT到新表中。
我想删除它并在单个INSERT INTO SELECT语句中执行所有操作,但是我不确定如何在单个查询中处理Id逻辑。
有可能吗?
如果表2中的id是自动编号: