问题1。select @ln_licheng= @ln_licheng * 2 请用set 因为select 会返回值向客户端,这没必要。
问题2。if @ln_heliraoxing=null 请is 来代替=
问题3。rollback transaction ,何来回滚。
问题4 。请不要在触发器里用系统的raiserror,最好用自己的异常处理过程。
问题5。
if @ln_heliraoxing=null
begin
select @ln_heliraoxing=0
end 没必要这样用,只要用的时候用isnull(@ln_heliraoxing,0) 就好了。
问题6。你定义的大部分变量都可以省略。
问题7。当向列插入NULL值的时候,最好省略插入,这会在以后的逻辑中会带来麻烦不知道我说的对不对
问题2。if @ln_heliraoxing=null 请is 来代替=
问题3。rollback transaction ,何来回滚。
问题4 。请不要在触发器里用系统的raiserror,最好用自己的异常处理过程。
问题5。
if @ln_heliraoxing=null
begin
select @ln_heliraoxing=0
end 没必要这样用,只要用的时候用isnull(@ln_heliraoxing,0) 就好了。
问题6。你定义的大部分变量都可以省略。
问题7。当向列插入NULL值的时候,最好省略插入,这会在以后的逻辑中会带来麻烦不知道我说的对不对
insert 目标表 (列名1,列名2,列名3,列名4) select 列名1,列名2,'常量1',null where ls_shenhe='1' and ls_paichedan in (select c_paichedan from acc_glgq_tab)
形式
begin
raiserror('当审核时向应耗油耗表中插入信息时出现错误,请与系统管理员联系!',16,10)
return
rollback transaction
end 改为:
begin
raiserror('当审核时向应耗油耗表中插入信息时出现错误,请与系统管理员联系!',16,10)
rollback transaction
return
end 关于:
回复人: qiubolecn(来自差生市) ( ) 信誉:99 2003-07-07 22:41:00 得分:0
问题1。select @ln_licheng= @ln_licheng * 2 请用set 因为select 会返回值向客户端,这没必要。
问题2。if @ln_heliraoxing=null 请is 来代替=
问题3。rollback transaction ,何来回滚。
问题4 。请不要在触发器里用系统的raiserror,最好用自己的异常处理过程。
问题5。
if @ln_heliraoxing=null
begin
select @ln_heliraoxing=0
end 没必要这样用,只要用的时候用isnull(@ln_heliraoxing,0) 就好了。
问题6。你定义的大部分变量都可以省略。
问题7。当向列插入NULL值的时候,最好省略插入,这会在以后的逻辑中会带来麻烦不知道我说的对不对
的
问题3。rollback transaction ,何来回滚。
由回滚,回滚触发触发器的语句问题4 。请不要在触发器里用系统的raiserror,最好用自己的异常处理过程。
不同意,出错回滚的情况用raiserror提示简单易行。
begin
raiserror('没有取得值',16,10)
return
end
让人不明白,没有回滚但是出错,出错了但是数据更改了,但愿你的用户能理解