首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一对多数据插入有关问题

2013-07-01 
一对多数据插入问题表一 OrderID(PK),User表二 ID(PK),ProductID,OrderID(FK)问一:要怎么实现一个订单多条

一对多数据插入问题
表一 OrderID(PK),User
表二 ID(PK),ProductID,OrderID(FK)

问一:
要怎么实现一个订单多条记录的插入?
要求用存储过程来实现,当有记录插入失败的时候,回滚所有

问二:
在代码中要怎么实现数据传递?
[解决办法]


create table tbl_1(OrderID int identity(1,1),[User] nvarchar(30));
create table tbl_2(ID int identity(1,1),ProductID int ,OrderID int);

alter table tbl_1 add constraint pk_tbl_1 primary key clustered(
  OrderID
)
go
alter table tbl_2 add constraint pk_tbl_2 primary key clustered(
  ID
)
go
alter table tbl_2 add constraint fk_tbl_2_1 foreign key (OrderID)
references tbl_1(OrderID)
go
create procedure spCSDN
as
begin
  declare @OrderID int
  begin tran
     insert into tbl_1([user]) 
 select 'csdn'
 set @OrderID=@@IDENTITY
 insert into tbl_2(ProductID,OrderID)
 select 1,@OrderID union
 select 2,@OrderID 
  commit tran
end;
go
exec spCSDN
go
select * from tbl_1
select * from tbl_2

[解决办法]
如果你使用的是。net的程序开发,在程序中实现事务操作。
http://blog.csdn.net/huhai463127310/article/details/2772988

热点排行