我现在有两个表,一个是主表,一个是从表,在插入主表时会自动生成一个ID,这个ID默认值是一个42位的newid(),接下来再插从表时要把这个ID也带进从表OrderID字段里,我实现的办法是在插完主表记录时再找出最后一条记录的ID赋给从表,那么如果在这时正好有一条新的记录进来了,那我岂不就取错ID了?
有没有什么办法或事务来控制这种情况,因为这两个表是靠这个ID字段对应起来的,一旦取错了后果不堪设想。
有没有什么办法或事务来控制这种情况,因为这两个表是靠这个ID字段对应起来的,一旦取错了后果不堪设想。
在程序中直接生成ID,C# 是Guid.NewGuid(),然后构造insert语句
一般的系统都是采用INT自增列。
GUID 一般用在大数据量的处理上
我那个ID不是自动的自增列,具体数据格式为如下:
名称:ID
长度:42
默认值或绑定:(newid())
数据类型:varchar新增一条记录后,ID自动生成格式如下:153C2369-F9B2-4CFD-AB1E-3B23FDF63AB8
sql应该这样写:
insert ..... //插入数据
select SCOPE_IDENTITY() // 返回刚插入的主键,这里不会受到其他插入数据的影响。