请问如何编写存储过程过者sql语句,向两个表中同时插入数据,而且A表的Aid自增,对应B表的Bid,向A表插入的时候,只有一条数据,向B表插入的时候,有多条数据,该怎样写?求帮助!先各位大神们了!求个实力,或者现成的代码!谢谢了
------解决思路----------------------
AB有外键关联吗?
------解决思路----------------------
我觉得你最好把逻辑封装在存储过程,然后用C#调用即可,直接硬编码到C#扩展性非常低
------解决思路----------------------
有外键的话可以使用级联更新或者触发器,我这篇文章是级联删除的,你看懂了,级联更新就没问题了:
http://blog.csdn.net/dba_huangzj/article/details/8042999另外你的描述我怎么都觉得不顺畅,你最好给点例子拉
------解决思路----------------------
你这个需求是一对多的关系:
你向B表插入数据不可能一下插入多条数据吧。
举个例子:比如说学生表和科目表,一个学生对应多个科目。
你要添加数据的时候,你首先要添加一个学生(StuNo)然后添加对应的科目,在添加科目的时候,你把这个学生的StuNo带过来就可以了。
------解决思路----------------------
两个方法:
A) A表建立触发器,插入一条数据时在B表插入相应数据。更新,删除数据时也需要相应变更数据。
B) A表的Insert,Update,Delete通过存储过程来实现。比如Insert存储过程:
1.向A插入一条数据,并通过output将结果输出到表变量或者临时表中。
-- Insert New Customers and Get their Surrogate Keys
DECLARE @NewCusts TABLE
(
CustomerID int
);
INSERT INTO dbo.CustomersDim(CustomerID, CompanyName)
OUTPUT inserted.CustomerID
INTO @NewCusts
SELECT CustomerID, CompanyName
FROM Northwind.dbo.Customers
WHERE Country = N'UK';
2.通过临时表构造B表中需要数据,并插入B表。
INSERT INTO B(BID, CompanyName)
SELECT *, "CompanyName" FROM @NewCusts
------解决思路----------------------
级联插入就可以