sql触发器,before

大家好,请教大家一个问题:我变更请购单的时候,如果修改了数量,就不能保存,这样的触发器怎么写啊?我写以下的代码,但是不行啊,不能用before啊。如果可以,帮我写以下代码... 大家好,请教大家一个问题:
我变更请购单的时候,如果修改了数量,就不能保存,这样的触发器怎么写啊?
我写以下的代码,但是不行啊,不能用before啊。如果可以,帮我写以下代码,可以吗?谢谢大家了。万分感谢。fquantity表示数量的字段。autoid只是id号。
create TRIGGER [dbo].[ceshi] ON [dbo].[pu_Appvouchs]
before update
as
DECLARE @fquantity as int ,@autoid as nvarchar(20)
select @fquantity =fquantity,@autoid=autoid from inserted
if exists(select * from pu_appvouchs where AutoID=@autoid and @fquantity <> fquantity )
begin
ROLLBACK TRAN
end
GO
展开
 我来答
xjwxj520
2015-10-23 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:94
采纳率:0%
帮助的人:79.4万
展开全部

语法有问题撒

create TRIGGER [dbo].[ceshi] ON [dbo].[pu_Appvouchs] 
before update 
 as  
   DECLARE  @fquantity as int  ,@autoid as nvarchar(20)
  
    begin
     select @fquantity =fquantity,@autoid=autoid from inserted   
     if exists(select * from pu_appvouchs where AutoID=@autoid and @fquantity <> fquantity )  then
     ....
     else  
        ROLLBACK TRAN  
     end if   
    end
GO
追问
我知道有问题的啊,可是不知道是哪里出问题了呢?
追答
什么数据库 mysql吗?
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
彭干彦
2015-10-23 · TA获得超过140个赞
知道小有建树答主
回答量:162
采纳率:85%
帮助的人:125万
展开全部
没用过before。可以用after,给你个思路,很简单的,当更新完后判断更新前后的数量有没有变化,有有变化。效果是一样的
追问
怎么判断更新前后的数量有没有变化呢,可以给个代码不,我学习下啊
追答
select * from inserted  --更新后的数据
select * from deleted --更新前的数据
before应该一样的,对不起代码不在旁边,得到更新前后的数据,比较判断一下就ok了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式