在查询分析器里可以,在程序运行不行
CREATE TRIGGER ICStockBill_transfer ON [dbo].[ICStockBill]
FOR UPDATE
AS
--审核时自动生成调拨单
declare @FOldStatus int ,@fstatus int,@finterid int
select @FOldStatus=fstatus,@finterid=finterid from deleted--修改前
select @fstatus=fstatus from inserted --修改后
if @FOldStatus <> @fstatus--如果修改前后发生变化
begin
if @FOldStatus=0 --修改改无数据为审核 ,修改前有数据为反审核
begin
--审核时 如有定义不合单据
select @finterid=finterid from deleted--修改前
if exists(select fentryselfa0235 from icstockbill a,icstockbillentry b where a.finterid=b.finterid and b.fentryselfa0235= 'FFF ' and a.finterid=@finterid)
exec kd_InsertTransfer @finterid
end
else
begin
--反审核时
if exists(select finterid from icstockbillentry where finterid =@finterid and finterid*1000+Fentryid in
(select fentryselfd0127*1000+fentryselfd0128 from icstockbill a,icstockbillentry b where a.finterid=b.finterid and a.ftrantype=41))
BEGIN
RAISERROR( '已生成调拨单,反审核前先删除此单! ',18,18)
return
END
end
end
--问题
不执行RAISERROR( '已生成调拨单,反审核前先删除此单! ',18,18)
------解决方案--------------------个人认为
你的问题改成:
在应用程序中怎么提取数据库中的RAISERROR错误消息比较直观