直接定义到视图上么? 用instead of create trigger opt_se_log on se_log ... ... 不太明白了,做不成功。
比如 CREATE TRIGGER trigger_name ON view_name INSTEAD OF UPDATE AS IF UPDATE ( column_name ) sql_statement
create trigger opt_se_log on se_log instead of delete as begin delete from sc where sno=(select sno from deleted) and cno=(select cno from deleted) end 这个对于删除的触发成功了。不过在做插入的时候遇到了点儿小问题create trigger opt_se_log on se_log instead of insert as begin insert into sc values('select sno from inserted','select cno from inserted','select grade from inserted') end在执行insert into se_log values('95001','李勇','1','数学','95')的时候 提示: 服务器: 消息 245,级别 16,状态 1,过程 opt_se_log,行 6 将 varchar 值 'select grade from inserted' 转换为数据类型为 int 的列时发生语法错误。 然后我将'select grade from inserted'改为了convert(int,'select grade from inserted')还是不行 再有一个问题,如果insert触发成功之后如何将insert和delete触发合并呢? 麻烦了
用instead of
create trigger opt_se_log
on se_log
...
...
不太明白了,做不成功。
CREATE TRIGGER trigger_name
ON view_name
INSTEAD OF UPDATE
AS
IF UPDATE ( column_name )
sql_statement
create trigger opt_se_log
on se_log
instead of delete
as
begin
delete from sc where sno=(select sno from deleted) and cno=(select cno from deleted)
end 这个对于删除的触发成功了。不过在做插入的时候遇到了点儿小问题create trigger opt_se_log
on se_log
instead of insert
as
begin
insert into sc values('select sno from inserted','select cno from inserted','select grade from inserted')
end在执行insert into se_log values('95001','李勇','1','数学','95')的时候
提示:
服务器: 消息 245,级别 16,状态 1,过程 opt_se_log,行 6
将 varchar 值 'select grade from inserted' 转换为数据类型为 int 的列时发生语法错误。
然后我将'select grade from inserted'改为了convert(int,'select grade from inserted')还是不行 再有一个问题,如果insert触发成功之后如何将insert和delete触发合并呢?
麻烦了