数据库事务使用 多条插入
下面是我写一个过程 插入三个表中 我用到事务 大家看下我这样写有问题没 在性能和速度上是否需要修改
大家有什么好办法或建议没
ALTER proc [dbo].[pr_insertfwbuy](
@fm_title nvarchar(50),
@fm_sf int,
@fm_qy int,
@fm_dq int,
@fm_type int,
@fm_source int,
@fm_fwlx int,
@fm_price decimal(18, 0),
@fm_fwsm nvarchar(300),
@fm_mj int,
@fm_address nvarchar(50),
@fm_adduser int,
@u_name nvarchar(10),
@u_phone char(12),
@u_email char(30),
@u_qqmsn char(30),
@p_pathslt0 char(50),
@p_path0 char(50),
@p_pathslt1 char(50),
@p_path1 char(50),
@p_pathslt2 char(50),
@p_path2 char(50))
as
declare @fmid int;
begin tran--使用事务
--插入第一个表
insert into T_fwbuy(fm_title,fm_sf,fm_qy,fm_dq,fm_type,fm_source,fm_fwlx,fm_price,fm_fwsm,fm_mj,fm_address,fm_addtime,fm_endtime,fm_adduser,fm_enduser,fm_sfjs)
values(@fm_title,@fm_sf,@fm_qy,@fm_dq,@fm_type,@fm_source,@fm_fwlx,@fm_price,@fm_fwsm,@fm_mj,@fm_address,getdate(),getdate(),@fm_adduser,@fm_adduser,0)
select @fmid=@@identity;
--插入第二个表
insert into T_fwmmuser(u_newid,u_type,u_name,u_phone,u_email,u_qqmsn,u_addtime)
values(@fmid,@fm_type,@u_name,@u_phone,@u_email,@u_qqmsn,getdate());
declare @i int;
set @i=0
while @i<3
begin
if '@p_path'+@i!=null and '@p_path'+@i!=''
begin
--插入第三个表
insert into T_photo(P_type,p_newid,p_pathslt,p_path)
values(@fm_type,@fmid,'@p_pathslt'+@i,'@p_path'+@i)
end
set @i=@i+1;
end
rollback tran