inserted 和deleted 是什么表 怎么没定义就用啊,那倒是sql自带的吗,我是初学者很糊涂啊!

use NewSales
go
create trigger tri_Delete
on Employees
for delete,update
as
set nocount off --不返回结果
declare @delcount int
declare @Empid Char(6)
--更新
if update(编号)
begin
update Sell
set 售货员工编号=(select 编号 from inserted)
where 售货员工编号 in (select 编号 from deleted)
end
--删除
select @delcount=count(*) from deleted
if @delcount>0
begin
--从临时表 delete中获取要删除的售货员工编号
select @Empid=编号 from deleted
--从sell表中删除该员工的销售记录
delete from Sell where 售货员工编号=@Empid
end
其中的 set 售货员工编号=(select 编号 from inserted)
where 售货员工编号 in (select 编号 from deleted) 是什么意思
里面的 inserted 和deleted 是什么表 怎么没定义就用啊,那倒是sql自带的吗,我是初学者很糊涂啊!

当触发器执行时,将生成两个特殊的临时表:inserted和deleted。它们与触发表的结构相同,用于测试触发条件,用户无法直接更改其中的内容。
执行INSERT语句时,将要插入触发表的新记录行同时插入inserted表中:执行DELETE语句时,将触发表中将要被删除的行放入 deleted表中。在执行 UPDATE语句时,先从表中删除旧行,并将删除的行插入deleted表中。然后插入新行,并将新行插入inserted表中
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-18
是个虚表,你在删除数据时,删除的记录就会先放到deleted表中;插入记录时,要插入的记录会先放到inserted表中。本回答被网友采纳
第2个回答  2010-12-18
要学会看帮助,联机帮助里面有详细介绍,

DML 触发器语句使用两种特殊的表:删除的表和插入的表。SQL Server 2005 会自动创建和管理这两种表。您可以使用这两种驻留内存的临时表来测试特定数据修改的影响以及设置 DML 触发器操作条件。但不能直接修改表中的数据或对表执行数据定义语言 (DDL) 操作,例如 CREATE INDEX。

在 DML 触发器中,插入的和删除的表主要用于执行以下操作:

扩展表之间的引用完整性。

在以视图为基础的基表中插入或更新数据。

检查错误并采取相应的措施。

找出数据修改前后表的状态差异并基于该差异采取相应的措施。

删除的表用于存储 DELETE 和 UPDATE 语句所影响的行的副本。在执行 DELETE 或 UPDATE 语句的过程中,行从触发器表中删除,并传输到删除的表中。删除的表和触发器表通常没有相同的行。

插入的表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在插入或更新事务期间,新行将同时被添加到插入的表和触发器表。插入的表中的行是触发器表中的新行的副本。

更新事务类似于在删除操作之后执行插入操作;首先,旧行被复制到删除的表中,然后,新行被复制到触发器表和插入的表中。

在设置触发器条件时,应使用激发触发器的操作相应的插入的和删除的表。尽管在测试 INSERT 时引用删除的表或在测试 DELETE 时引用插入的表不会导致任何错误,但在这些情况下,这些触发器测试表将不包含任何行。

inserted 和deleted 是什么表 怎么没定义就用啊,那倒是sql自带的吗,我...
当触发器执行时,将生成两个特殊的临时表:inserted和deleted。它们与触发表的结构相同,用于测试触发条件,用户无法直接更改其中的内容。执行INSERT语句时,将要插入触发表的新记录行同时插入inserted表中:执行DELETE语句时,将触发表中将要被删除的行放入 deleted表中。在执行 UPDATE语句时,先从表中删除旧...

临时表inserted表和deleted表有什么作用
inserted表和deleted表用于存放对表中数据行的修改信息,他们是触发器执行时自动创建的,放在内存中,是临时表。当触发器工作完成,它们也被删除。它们是只读表,不能向它们写入内容。inserted表:用来存储INSERT和UPDATE语句所影响的行的副本。意思就是在inserted表中临时保存了被插入或被更新后的记录行。在...

inserted、deleted在SQL Server中是什么意思?
从临时表 delete中获取要删除的售货员工编号select @Empid=编号 from deleted--从sell表中删除该员工的销售记录delete from Sell where 售货员工编号=@Empidend 可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的触发器。当触发INSERT触发器时,新的数据行就会被插入到触发器表和inserted表中。

什么是Inserted表? 什么是Deleted表?
Inserted表和Deleted表仅仅在触发器在执行时存在,这一点是非常重要的,我们一定要明确。它们在某一特定时间和某一特定表相关。一旦某一个触发器结束执行时,相应的在两个表内的数据都会丢失。如果你想创建一个在任意一个这些表内数据的永久拷贝,你需要在触发器内把这些表内的数据拷贝到一个永久的表...

inserted、deleted在SQL Server中是什么意思
简单的给你解释下吧 在delete数据的时候,可以假定数据库将要删除的数据放到一个deleted临时表中,我们可以向读取普通的表一样,select 字段 from deleted 而insert的时候道理一样,只不过是把要插入的数据放在inserted表中。更新操作可以认为是执行了两个操作,先把那一行记录delete掉,然后再insert,这样...

sql中在触发器设计中,什么时候用到inserted表?什么时候用到deleted表...
需要触发器操作新数据时用到inserted表,也就是说inserted是新数据表 需要触发器操作新旧据时用到deleted表,也就是说deleted是旧数据表 如:用户执行insert操作,触发器里只有inserted表有数据,因为插入数据操作是没有旧数据的 用户执行update操作,触发器里不但inserted表有数据,deleted表也有数据 用户执行...

sql有没有deleted表
在SQL中存在两个隐藏表,该表在执行过程中存在的,执行完毕后是不存在的!这两个表就是deleted和inserted表,当进行删除时,先将删除数据存入到deleted表中,然后在任务提交后清空deleted表(表在任务提交后就已经不存在了),而进行插入时,插入数据也是先存储在inserted表中,任务得提交后,该表也不会...

sql 触发器 deleted表中为什么不是修改前的数据
Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。Inserted 表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 ...

SQL 存储过程输入参数怎么设置可为空
触发器中有两个临时表inserted 和deleted ,这两个表的表结构和创建触发器的表是一样的,inserted表存的是当前插入或更新後的值,deleted表存的是当前删除或修改前的值.你可以利用以上两个临时表的值来获得你要的参数值,然後调用时传入存储过程 另外你也可以直接在触发器中操作,不用存储过程。

SQL。。server级触发器代码问题。。高手》》
deleted 和 inserted 是逻辑(概念)表。这些表在结构上类似于定义触发器的表(也就是在其中尝试用户操作的表);这些表用于保存用户操作可能更改的行的旧值或新值。例如,若要检索 deleted 表中的所有值,请使用: SELECT *FROM deleted如果兼容级别等于 70,那么在 DELETE、INSERT 或 UPDATE 触发器中,SQL Server 将不...

相似回答
大家正在搜