SQLSERVER触发器求救!!!!!!!!!!

我所写的触发器程序如下:createtriggerwaronwarning(afterinsertorupdateonstockforeachrowasbeginifst... 我所写的触发器程序如下:

create trigger war on warning
(
after insert or update on stock
for each row
as begin
if stock.s_amount<medicine.m_lowerlimit then
insert into warning values (1,stock.s_mid,"药品已到最低限度了,请及时进药.",stock.s_amount);
end if;
if stock.s_amount>medicine.m_upperlimit then
insert into warning values (2,stock.s_mid,"药品已到蝗高限度了,请暂缓进药.",stock.s_amount);
end if;
end;
)

提示的错误如下:

服务器: 消息 170,级别 15,状态 1,过程 war,行 2
第 2 行: '(' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,过程 war,行 6
在关键字 'then' 附近有语法错误。
服务器: 消息 128,级别 15,状态 1,过程 war,行 7
在此上下文中不允许使用 's_mid'。此处只允许使用常量、表达式或变量。不允许使用列名。
服务器: 消息 156,级别 15,状态 1,过程 war,行 9
在关键字 'then' 附近有语法错误。
服务器: 消息 128,级别 15,状态 1,过程 war,行 10
在此上下文中不允许使用 's_mid'。此处只允许使用常量、表达式或变量。不允许使用列名。

请高手给解答一下.先谢谢了.
wwjwang 留下QQ,我们QQ讨论好么?
展开
 我来答
wwjwang
2007-08-08 · TA获得超过219个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:234万
展开全部
大概这样,你试试看吧
create or replace trigger war
after insert or update on stock
for each row
declare
lowerlimit integer;
upperlimit integer;
begin
select m_lowerlimit,m_upperlimit into lowerlimit,upperlimit from medicine where s_mid = :s_mid;
if :new.s_amount < lowerlimit then
insert into warning values(1,:new.s_mid,"药品已到最低限度了,请及时进药.",:new.s_amount);
end if;
if :new.s_amount>upperlimit then
insert into warning values (2,:new.s_mid,"药品已到蝗高限度了,请暂缓进药.",:new.s_amount);
end if;
end;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式