当前位置: 代码迷 >> Sql Server >> 简单的有关问题请问
  详细解决方案

简单的有关问题请问

热度:66   发布时间:2016-04-27 19:38:13.0
简单的问题请教
create   trigger   delete_employee   on   employee
for   delete  
as  
declare   @typeid   varchar(10)
select   [email protected]   from   deleted
delete   from   loginuser   where   [email protected]
go

这个触发器里的。select   [email protected]   from   deleted   这句话是什么意思呢,好久都没太明白.deleted是一个表还是什么其它的。


------解决方案--------------------
create trigger delete_employee on employee
for delete
as
declare @typeid varchar(10)
select @typeid =typeid from deleted
delete from loginuser where [email protected]
go

这个触发器里的。select [email protected] from deleted 这句话是什么意思呢,好久都没太明白.deleted是一个表还是什么其它的。
-----------------------------------------
deleted 是產生的一個臨時表,觸發結束後自動刪除
裡面紀錄的是 表刪除前的數據
select @typeid=typeid from deleted
就是把刪除前的 typeid 值給 變量 @typeid
建議該trigger 這樣寫
create trigger delete_employee on employee
for delete
as
delete loginuser from loginuser ,deleted where loginuser.etypeid=deleted.typeid
go


------解决方案--------------------
create trigger delete_employee on employee
for delete
as
declare @typeid varchar(10)
select [email protected] from deleted
delete from loginuser where [email protected]
go
-----------------------------------------------
应该:
create trigger delete_employee on employee
for delete --在删除表employee里的记录时触发
as
declare @typeid varchar(10)
select @typeid=typeid from deleted --取得删除记录的typeid
delete from loginuser where [email protected] [email protected]
go


  相关解决方案