关于事务与SQL Server外键约束冲突的问题
我设计了一个数据库,其中有两个表,一个users,一个userGroup
users里面有个userid是主键,里面有个groupid,
userGroup里面有个groupid,是主键,该字段在users表里面是外键。
添加的时候先要添加一个用户组,换言之就是我在使用事务先添加用户组以后的到groupid再用这个groupid组成一句添加用户的sql,但是提示出错,提示主外键约束错误,groupid必须是在userGroup便里面存在的值。
请问这种情况在不删除约束的情况下怎么使程序可以正确执行?
参考答案:这是一个关于事务的问题
当你在这个事务中添加一个groupid到表userGroup中后,并没的提交事务。
也就是说这时userGroup表实际上并没有这个groupid
解决的方法当然也简单,就是在“用这个groupid组成一句添加用户的sql”时
先提交一次事务使这个groupid真正存到表中
(这个问题在事务的特性中明确的提到过,要好好看看书哦)