怎么创建如下的触发器
表一:
编号,姓名,性别
表二:
编号,文化程度.
就是在删除表一中的记录时,判断一下表二是否有对应的编号存在,要是存在则取消删除,提示"不能删除此记录"
问题点数:100、回复次数:5Top
1 楼OpenVMS(半知半解)回复于 2002-06-24 08:45:10 得分 0
create trigger mytrigger on 表一
for delete
as
if (select a.编号 from 表二 as a,deleted as d where a.编号=d.编号) is not NULL
BEGIN
raiserror( N'不能删除此记录',16,1)
ROLLBACK TRANSACTION
ENDTop
2 楼mazhayang(蚂蚱先生)回复于 2002-06-24 08:46:39 得分 0
create tigger deltab1
on tab1
for delete as
if exist(select * from tab2 where id=xxx)
delete from tab2 where id=xxx
else
raiseerror ('cant delete ',16,0)
Top
3 楼nononono(null,null)回复于 2002-06-24 08:52:18 得分 0
CREATE TRIGGER [TRI_表一_DEL] ON [表一]
FOR DELETE
AS
IF EXISTS (SELECT * FROM 表二 WHERE 编号 IN (SELECT 编号 FROM DELETED))
BEGIN
ROLLBACK TRANSACTION
RAISERROR ('不能删除。',16,10);
RETURN
END
RETURN
Top
4 楼Yang_(扬帆破浪)回复于 2002-06-24 08:54:35 得分 80
create trigger tr_table1_delete
on table1
for delete
as
if exists (select * from table2 where 编号 in (select 编号 from deleted))
begin
RAISERROR '不能删除此记录',16,1
ROLLBACK TRANSACTION
end
go
Top
5 楼Yang_(扬帆破浪)回复于 2002-06-24 08:55:34 得分 10
create trigger tr_table1_delete
on table1
for delete
as
if exists (select * from table2 where 编号 in (select 编号 from deleted))
begin
RAISERROR '不能删除此记录',16,1
ROLLBACK TRANSACTION
end
go
Top
6 楼hanwen(汉文)回复于 2002-06-24 09:03:27 得分 10
create tigger table1_del on tabl1
for delete as
declare @del_id integer
select @del_id=id
form deleted
if exist(select * from tabl2 where id=@del_id )
delete from tabl2 where id=@del_id
else
raiseerror ('cant delete ',16,0)
Top




