专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Sql Server

C#与此同时向两个表中插入数据且有关联,该怎样做

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
C#同时向两个表中插入数据且有关联,该怎样做?
请问如何编写存储过程过者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


------解决思路----------------------
级联插入就可以
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: