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 展开
我变更请购单的时候,如果修改了数量,就不能保存,这样的触发器怎么写啊?
我写以下的代码,但是不行啊,不能用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 展开
2个回答
展开全部
语法有问题撒
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 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
展开全部
没用过before。可以用after,给你个思路,很简单的,当更新完后判断更新前后的数量有没有变化,有有变化。效果是一样的
追问
怎么判断更新前后的数量有没有变化呢,可以给个代码不,我学习下啊
追答
select * from inserted --更新后的数据
select * from deleted --更新前的数据
before应该一样的,对不起代码不在旁边,得到更新前后的数据,比较判断一下就ok了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询