怎样用asp.net语言同一时间插入数据库中的多个表的数据

3个主键表2个外键表,2个外键表只用插哪三个主键表的id
2025-01-07 11:19:53
推荐回答(5个)
回答1:

不会是同一时间 要有先后顺序的
首先 外键表需要在主键表之后插入 原因很简单 主键表还未生成主键id
该向外键表插什么?

一般情况下的解决办法 编写存储过程A
在三个主键表都插入结束后 将三个主键新生成的id得到
然后再向两个外键表插数据

declare @表1ID int
declare @表2ID int
declare @表3ID int

insert 主键表1 (....) values (....)
select @表1ID = id from 主键表1

insert 主键表2 (....) values (....)
select @表2ID = id from 主键表2

insert 主键表3 (....) values (....)
select @表3ID = id from 主键表3

insert 外键表1 (@表1ID,@表2ID)
insert 外键表2 (@表1ID,@表3ID)

基本思路都写给你了

回答2:

同一时间?总有个先后吧,可以用存储过程,先插主键表

回答3:

楼上说的对,不可能同一时间的,一般用存储过程。另外Asp.net不是语言。

回答4:

你的这个需求其实可以转化为:同时插入多个表的数据,同时成功,只要一条失败,所有的插入操作均失败。其实,就是简单的数据库事务的问题。
你只需要在你的插入sql前后,声明它们在一个事务中,即可:
begin tran
insert into tableA...
insert into tableB...
insert into tableC...
commit

回答5:

要从多个表中检索出信息来,那么这些表之间必然存在某种联系,这样的话可以直接通过SQL语句就能实现的,当然一定要用到连接操作的。