CREATE trigger DDJYTZ_TRIGGER on DDJYTZ
for delete
as
begin
delete from DDWJML
where DDWJML.WJBH=DDJYTZ.WJBH
end
修改为
delete from DDWJML
where WJBH in(select WJBH from deleted)
还有
每一个操作后面加GO
for delete
as
begin
delete from DDWJML
where DDWJML.WJBH=DDJYTZ.WJBH
end
修改为
delete from DDWJML
where WJBH in(select WJBH from deleted)
还有
每一个操作后面加GO
if object_id('WJBH_INDEX') is not null
drop index DDJYTZ.WJBH_INDEX
create unique index WJBH_INDEX on DDJYTZ(WJBH)go --在TRIGGER前要加GO
--建立借阅台帐的触发器
if exists (select name from sysobjects where name ='DDJYTZ_TRIGGER' )
drop trigger DDJYTZ_TRIGGER
CREATE trigger DDJYTZ_TRIGGER on DDJYTZ
for delete
as
begin
delete from DDWJML
where DDWJML.WJBH=DDJYTZ.WJBH
end
没用啊!
我用的SQL7.0
我是按照书上的格式写下来的啊!
能给我介绍一本好一点的书吗???
谢谢拉!
现在只有一个问题了!
Syntax error converting datetime from character string.
----------------------------------------------------CREATE TRIGGER 名1 ON dbo.tabMain
FOR INSERT
AS
insert db2..tabSlave select * from insertedCREATE TRIGGER 名2 ON dbo.tabMain
FOR update
AS
update db2..tabSlave set 列=aa.列 from inserted aa where aa.编号=db2..tabSlave.编号
CREATE TRIGGER 名3 ON dbo.tabMain
FOR delete
AS
delete db2..tabSlave where 编号 in (select 编号 from deleted)你理解了就懂了
for delete
as
begin
delete from DDWJML
where DDWJML.WJBH=DDJYTZ.WJBH <<===这里你看得懂吗?错的一塌糊涂
end
go
--触发器里有inserted和deleted两个系统临时表,举例:
create table 表 (a int)
go
insert 表 values (1)
go
CREATE TRIGGER 名 ON 表
FOR UPDATE
AS
select a 更新前被删除的数据 from deleted
select a 更新后被插入的数据 from inserted
go
------------测试:
update 表 set a=3
这个地方我后来改过来了!
delete DDJYTZ
FROM DELETED D,DDWJML S
where D.FLH=S.WJBH
嘻嘻
是我开始对触发器的格式误解了!