给你个触发器的例子
当删除SellCard中一个记录时,相应的SellCardDetail中的明细记录一并删除。create trigger trgDelete on dbo.SellCard
for delete
as
delete SellCardDetail
from SellCardDetail,deleted
where
SellCardDetail.VoucherID=deleted.VoucherID
当删除SellCard中一个记录时,相应的SellCardDetail中的明细记录一并删除。create trigger trgDelete on dbo.SellCard
for delete
as
delete SellCardDetail
from SellCardDetail,deleted
where
SellCardDetail.VoucherID=deleted.VoucherID
--declare cur_for cursor for--declare @tablename varchar(100)
--select @tablename='dbo.t_RP_Contact'
select * from
(select
N'PK_Table' = PKT.name,
N'FK_Table' = FKT.name,
N'Constraint' = object_name(r.constid),
c.status,
cKeyCol1 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey1)),
cKeyCol2 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey2)),
cKeyCol3 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey3)),
cKeyCol4 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey4)),
cKeyCol5 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey5)),
cKeyCol6 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey6)),
cKeyCol7 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey7)),
cKeyCol8 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey8)),
cKeyCol9 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey9)),
cKeyCol10 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey10)),
cKeyCol11 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey11)),
cKeyCol12 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey12)),
cKeyCol13 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey13)),
cKeyCol14 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey14)),
cKeyCol15 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey15)),
cKeyCol16 = convert(nvarchar(132), col_name(r.fkeyid, r.fkey16)),
cRefCol1 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey1)),
cRefCol2 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey2)),
cRefCol3 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey3)),
cRefCol4 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey4)),
cRefCol5 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey5)),
cRefCol6 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey6)),
cRefCol7 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey7)),
cRefCol8 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey8)),
cRefCol9 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey9)),
cRefCol10 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey10)),
cRefCol11 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey11)),
cRefCol12 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey12)),
cRefCol13 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey13)),
cRefCol14 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey14)),
cRefCol15 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey15)),
cRefCol16 = convert(nvarchar(132), col_name(r.rkeyid, r.rkey16)),
N'PK_Table_Owner' = user_name(PKT.uid),
N'FK_Table_Owner' = user_name(FKT.uid),
N'DeleteCascade' = OBJECTPROPERTY( r.constid, N'CnstIsDeleteCascade'),
N'UpdateCascade' = OBJECTPROPERTY( r.constid, N'CnstIsUpdateCascade')
from dbo.sysreferences r, dbo.sysconstraints c, dbo.sysobjects PKT, dbo.sysobjects FKT,
(select distinct object_id(object_name(fkeyid)) as objid from sysreferences where rkeyid = object_id('YouTableName')) SRCTB
where r.constid = c.constid and r.fkeyid = SRCTB.objid
and PKT.id = r.rkeyid and FKT.id = r.fkeyid) FKTB where PK_Table='YouTableName'
因为他没有befor级的触发器!
所以没有办法!但是如果你的两个表之间没有外间约束
可以用这个!
create trigger kkk
on tablename
for delete
as
begin
delete tablename1 from tablename1,deleted where tablename1.iid=tablename1.iid
end