我所写的触发器程序如下:
create trigger Insert_stud
after insert on student1
for each row
as begin
insert into stud_bk values(
new.sname,new.ssex,new.sage,new.sdept);
end;
go
create trigger update_stud
After update on student1
for each row
as begin
if(new.std<>old.std) then insert into stud_bk values(
new,sname,new.ssex,new.sage,new.sdept);
end if;
end;
提示的错误如下:
服务器: 消息 170,级别 15,状态 1,过程 Insert_stud,行 2
第 2 行: 'after' 附近有语法错误。
服务器: 消息 128,级别 15,状态 1,过程 Insert_stud,行 6
在此上下文中不允许使用 'sname'。此处只允许使用常量、表达式或变量。不允许使用列名。
服务器: 消息 170,级别 15,状态 1,过程 update_stud,行 2
第 2 行: 'After' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,过程 update_stud,行 5
在关键字 'then' 附近有语法错误。
服务器: 消息 128,级别 15,状态 1,过程 update_stud,行 6
在此上下文中不允许使用 'new'。此处只允许使用常量、表达式或变量。不允许使用列名。
请高手给解答一下.先谢谢了.
create trigger Insert_stud
after insert on student1
for each row
as begin
insert into stud_bk values(
new.sname,new.ssex,new.sage,new.sdept);
end;
go
create trigger update_stud
After update on student1
for each row
as begin
if(new.std<>old.std) then insert into stud_bk values(
new,sname,new.ssex,new.sage,new.sdept);
end if;
end;
提示的错误如下:
服务器: 消息 170,级别 15,状态 1,过程 Insert_stud,行 2
第 2 行: 'after' 附近有语法错误。
服务器: 消息 128,级别 15,状态 1,过程 Insert_stud,行 6
在此上下文中不允许使用 'sname'。此处只允许使用常量、表达式或变量。不允许使用列名。
服务器: 消息 170,级别 15,状态 1,过程 update_stud,行 2
第 2 行: 'After' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,过程 update_stud,行 5
在关键字 'then' 附近有语法错误。
服务器: 消息 128,级别 15,状态 1,过程 update_stud,行 6
在此上下文中不允许使用 'new'。此处只允许使用常量、表达式或变量。不允许使用列名。
请高手给解答一下.先谢谢了.
create trigger Insert_stud
after insert on student1
for each row
begin
insert into stud_bk
values(:new.sname,:new.ssex,:new.sage,:new.sdept);
end;
create trigger update_stud
After update of 某列 on student1
for each row
begin
if(:new.std <> :old.std) then
insert into stud_bk
values(:new.sname,:new.ssex,:new.sage,:new.sdept);
end if;
end;
运行了好象以前的错误还是存在哦
create trigger 触发器名字
on 表名(在哪个表上建)
for delete
as
delete from 属性名
where 条件
on tablename
after delete
as
begin
..
end
create trigger Insert_stud
on student1
for after insert
as begin
insert into stud_bk values(
new.sname,new.ssex,new.sage,new.sdept);
end;
on student1
after insert
as begin
insert into stud_bk values(
new.sname,new.ssex,new.sage,new.sdept);
end;
after insert
as
begin
insert into stud_bk
select sname,ssex,sage,sdept from inserted
end;
create trigger update_stud on student1
After update
as
begin
if exists(select * from inserted where not exists(select 1 from deleted where inserted.std=deleted.std))
begin
insert into stud_bk
select sname,ssex,sage,sdept from inserted
end
end
on xx表肯定是在after 、for、instead of前面的
建议看看帮助文件