感谢回复,如果可以,希望给出详细SQL语句,另外想问一下,如果有很多表(大概100个)都需要这样限制,会不会影响性能?
再有就是能否限制一次只能更新一行呢?[/quote]
增加了额外的检查操作,肯定会对性能有影响的,,,
另外你的触发器根本编译不过去吧。。“@” 是sqlserver里定义变量时才用的,,,oracle不用的
你改成以下
create or replace trigger check_base
BEFORE update on base FOR EACH ROW
declare rows int;
begin
if sql%rowcount > 0 then
rows:=rows+1;
if rows > 1 then
RAISE_APPLICATION_ERROR(-20001, '你不是在跟我开玩笑吧!这个不可以滴');
end IF;
end if;
end;
create or replace trigger check_base
BEFORE update on base FOR EACH ROW
declare @rows int;
begin
if sql%rowcount > 0 then
@rows ++;
if @rows > 1 then
RAISE_APPLICATION_ERROR(-20001, '你不是在跟我开玩笑吧!这个不可以滴');
end if
end if;
end;
我想用上面的触发器,好像不能,请帮忙分析一下
加上这个触发器,所有都不能正常更新了