日期:2014-05-17  浏览次数:20481 次

一个存储过程的问题,求指教。。。
新手求教。。。。 生成订单时插入数据到订单表(tb_Order)和订单商品表(tb_OrderPro)。。。。
如何使用存储过程实现。。。。。。




     表设计是否合理?
一个存储过程的问题,求指教。。。

------解决方案--------------------
楼主的意义是不是 订单是下单的信息,订单商品是1条或多条商品信息?
记得放在一个事务里哦

begin try
     begin tran
          insert order ...
          insert orderpro
     commit tran
end try
begin catch
     rollback tran
     return
end catch

------解决方案--------------------
create proc sp_insertorder
(
 @SplitString text, -- 你的字符串
 @Separator varchar(2) = '
------解决方案--------------------
'-- 分隔符
)
as
begin try
     begin tran
   --         DECLARE @SplitString text -- 
--DECLARE @Separator varchar(2)
DECLARE @CurrentIndex int;
DECLARE @NextIndex int;
DECLARE @ReturnText varchar(8000);-- NVarChar(4000)
SELECT @CurrentIndex=1;

WHILE(@CurrentIndex<=datalength(@SplitString)) -- DATALENGTH(@SplitString)/2
BEGIN
SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);
IF(@NextIndex=0 OR @NextIndex IS NULL)
SELECT @NextIndex=datalength(@SplitString)+1;--DATALENGTH(@SplitString)/2
    
SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);

set @ReturnText =  'select '''+replace(@ReturnText,'-',''',''')+''''


insert dbo.orderpro
(
 --......这里的顺序必须与你字符串里给的顺序一致
)
exec (@str)
    
SELECT @CurrentIndex=@NextIndex+1;
END
     commit tran
end try
begin catch
     rollback tran
     return
end catch