请教一个简单的关于触发器里的用词问题,谢谢。 deleted 和inserted是两个临时表。前者存放UPDATE要修改的记录,后者是UPDATE修改后的记录。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 deleted 和inserted只在触发器中使用。 使用 inserted 和 deleted 表触发器语句中使用了两种特殊的表:deleted 表和 inserted 表。Microsoft® SQL Server™ 2000 自动创建和管理这些表。可以使用这两个临时的驻留内存的表测试某些数据修改的效果及设置触发器操作的条件;然而,不能直接对表中的数据进行更改。inserted 和 deleted 表主要用于触发器中: 扩展表间引用完整性。在以视图为基础的基表中插入或更新数据。检查错误并基于错误采取行动。找到数据修改前后表状态的差异,并基于此差异采取行动。 Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。Inserted 表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。更新事务类似于在删除之后执行插入;首先旧行被复制到 deleted 表中,然后新行被复制到触发器表和 inserted 表中。在设置触发器条件时,应当为引发触发器的操作恰当使用 inserted 和 deleted 表。虽然在测试 INSERT 时引用 deleted 表或在测试 DELETE 时引用 inserted 表不会引起任何错误,但是在这种情形下这些触发器测试表中不会包含任何行。说明 如果触发器操作取决于一个数据修改所影响的行数,应该为多行数据修改(基于 SELECT 语句的 INSERT、DELETE 或 UPDATE)使用测试(如检查 @@ROWCOUNT),然后采取相应的对策。SQL Server™ 2000 不允许 AFTER 触发器引用 inserted 和 deleted 表中的 text、ntext 或 image 列;然而,允许 INSTEAD OF 触发器引用这些列。 意思是不是说,这两个临时表中,只有一条记录,如果我同时在触发器中UPDATE了10条记录,那么在这两个临时表中,保存的记录复本有几条啊??还有,这两个临时表中,是否有字段名呢??是否具备我在触发器里要UPDATE的记录的字段名呢?能否用inserted.filedname 这样的引用??谢谢 不是啊,比如你可以一次在一个表里操作(INSERT,UPDATE。DELETE)多条数据,这时在临时表里也就有多条数据,但是关于存在多长时间的问题以及存储多少数据的问题不太清楚! 1.如果我同时在触发器中UPDATE了10条记录,那么在这两个临时表中,保存的记录复本有几条啊??答:10条2.还有,这两个临时表中,是否有字段名呢??答:有3.是否具备我在触发器里要UPDATE的记录的字段名呢?答:具备4.能否用inserted.filedname 这样的引用??答:能 【关于按小时统计SQL】请各位帮帮忙 SQL时间问题紧急询问 解述语句 slq_server2000连接问题?? 这句SQL语句怎么写,一个会员ID显示一条 select * 问题 我想操作所有的列比如 ISNULL(*,'N/A') 【临时表的疑问】:我这么做,合理么?由于数据量比较大,分析统计就比较困难……【相信大家也经常遇到类似问题】 sql Server 存储过程参数最大长度限制是多少? 不用存储过程如何读出数据库中的图片? 局域网内访问多个SQL服务器的WEB页面 求教:如何得到数据的分类? 请问一个数据库两个表连接的SQL语句的问题
触发器语句中使用了两种特殊的表:deleted 表和 inserted 表。Microsoft® SQL Server™ 2000 自动创建和管理这些表。可以使用这两个临时的驻留内存的表测试某些数据修改的效果及设置触发器操作的条件;然而,不能直接对表中的数据进行更改。inserted 和 deleted 表主要用于触发器中: 扩展表间引用完整性。
在以视图为基础的基表中插入或更新数据。
检查错误并基于错误采取行动。
找到数据修改前后表状态的差异,并基于此差异采取行动。
Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。Inserted 表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。更新事务类似于在删除之后执行插入;首先旧行被复制到 deleted 表中,然后新行被复制到触发器表和 inserted 表中。在设置触发器条件时,应当为引发触发器的操作恰当使用 inserted 和 deleted 表。虽然在测试 INSERT 时引用 deleted 表或在测试 DELETE 时引用 inserted 表不会引起任何错误,但是在这种情形下这些触发器测试表中不会包含任何行。说明 如果触发器操作取决于一个数据修改所影响的行数,应该为多行数据修改(基于 SELECT 语句的 INSERT、DELETE 或 UPDATE)使用测试(如检查 @@ROWCOUNT),然后采取相应的对策。
SQL Server™ 2000 不允许 AFTER 触发器引用 inserted 和 deleted 表中的 text、ntext 或 image 列;然而,允许 INSTEAD OF 触发器引用这些列。
如果我同时在触发器中UPDATE了10条记录,那么在这两个临时表中,保存的记录复本有几条啊??还有,这两个临时表中,是否有字段名呢??是否具备我在触发器里要UPDATE的记录的字段名呢?
能否用inserted.filedname 这样的引用??谢谢
这时在临时表里也就有多条数据,但是关于存在多长时间的问题以及存储多少
数据的问题不太清楚!
如果我同时在触发器中UPDATE了10条记录,那么在这两个临时表中,保存的记录复本有几条啊??
答:10条
2.
还有,这两个临时表中,是否有字段名呢??
答:有
3.是否具备我在触发器里要UPDATE的记录的字段名呢?
答:具备
4.
能否用inserted.filedname 这样的引用??
答:能