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

sql有生成订单表时导入订单日记表中

2012-11-09 
sql有生成订单表时导入订单日志表中订单表中字段dbo.tb_Order:FBillNO, FNetBillNO, FCusNO, FPayStyle, F

sql有生成订单表时导入订单日志表中
订单表中字段
dbo.tb_Order:
FBillNO, FNetBillNO, FCusNO, FPayStyle, FFetchStyle, FAddress, FCustName, FCustAddress, FCustTel, FNote, FTypeID, FDept, Fstatus, Isdel
订单日志中字段:
dbo.tb_Order_Log
NO, FBillNO, FName, FEvent, FTime, FNote

求一存储过程,在对订单表dbo.tb_Order做新增操作时,把新增的信息同时更新到订单日志表dbo.tb_Order_Log 其中,NO 为自动增长的,FTime为当前时间,FName为当前登录用户,FBillNO,FNote为dbo.tb_Order中信息,FEvent默认为空。字段类型都可以的,其中两表一致!

谢谢帮助,有正确答案就给分!!

[解决办法]
应该是触发器,不是存储过程.
[解决办法]

SQL code
--大致写法如下:create trigger my_trig on tb_Order for insertas  insert into tb_Order_Log (FBillNO, FName, FTime, FNote )  select FBillNO , 这个登录用户比较麻烦, getdate(),FNote from insertedgo--最好表tb_Order加个登录用户字段,把登录用户写入tb_Order表。就可以这样:create trigger my_trig on tb_Order for insertas  insert into tb_Order_Log (FBillNO, FName, FTime, FNote )  select FBillNO , FName, getdate(),FNote from insertedgo
[解决办法]
SQL code
使用触发器完成create trigger t1on dbo.tb_Orderfor insertasbegin  insert into tb_Order_Log(FBillNO, FName, FTime, FNote )  select FBillNO,user_name(),getdate(),FNote  from isnertedend
[解决办法]
探讨
应该是触发器,不是存储过程.

[解决办法]
探讨
SQL code--大致写法如下:createtrigger my_trigon tb_Orderforinsertasinsertinto tb_Order_Log (FBillNO, FName, FTime, FNote )select FBillNO , 这个登录用户比较麻烦,getdate(),FNotefrom insertedgo--最好表tb_Order加个登录用户字段,把登录用户?-

[解决办法]
楼上的大虾都说了,如果单纯从数据库实现的话,那么最好是用触发器.但是如果有前台程序操作数据库那么可以用存储过程.
后者大体思路是,开启一个事务,然后先更新订单表,成功后接着更新日志表就可以了.存储过程分别写就可以应该.
[解决办法]
探讨
楼上的大虾都说了,如果单纯从数据库实现的话,那么最好是用触发器.但是如果有前台程序操作数据库那么可以用存储过程.
后者大体思路是,开启一个事务,然后先更新订单表,成功后接着更新日志表就可以了.存储过程分别写就可以应该.

[解决办法]
简单一点的也可以考虑 2005的output 

详情请参考http://blog.csdn.net/js_szy/archive/2009/11/30/4908948.aspx
[解决办法]
create proc ins_order_log 
@fbillno int --输入单据号
.
. --各种输入参数
.
.
as
begin tran
declare @rerurn int
insert into tb_order(fbillno,......) select @fbillno......
if @@error<>0
begin
goto err
set @return=1
end
insert into tb_order_log(TBILLNO) select @TBILLMNO
err:
rollback tran
[解决办法]
探讨
SQL code使用触发器完成createtrigger t1on dbo.tb_Orderforinsertasbegininsertinto tb_Order_Log(FBillNO, FName, FTime, FNote )select FBillNO,user_name(),getdate(),FNotefrom isnertedend

[解决办法]
SQL code
--大致写法如下:create trigger my_trig on tb_Order for insertas  insert into tb_Order_Log (FBillNO, FName, FTime, FNote )  select FBillNO , 这个登录用户比较麻烦, getdate(),FNote from insertedgo--最好表tb_Order加个登录用户字段,--1create trigger my_trig on tb_Order for insertas  insert into tb_Order_Log (FBillNO, FName, FTime, FNote )  select FBillNO , user_name(), getdate(),FNote from insertedgo--2create trigger my_trig on tb_Order for insertas  insert into tb_Order_Log (FBillNO, FName, FTime, FNote )  select FBillNO , SYSTEM_USER, getdate(),FNote from insertedgo 

热点排行