你的第二段代码是错误的,这说明你不明白触发器的执行原理;
触发器需要用三个动作来激活触发器,即insert,update,delete
在激活触发器的同时,系统会自动生成三个相关的表。
即insert动作时,会生成inserted表
update动作时,会生成inserted和deleted表,
delete动作时,会成生deleted表所以你的第二段代码的updated这个表是无效的,根本没有这个表的存在。
如果你要查看被删除的那条记录代码如下:
修改为:
CREATE TRIGGER cfq2 ON mytable
FOR UPDATE
AS
declare @aa int
select @aa=ID from deleted
---如果你要查看新插入的那条记录可以这样:
select @aa=id from inserted 
这样就可以啦

解决方案 »

  1.   

    补充一下:
    你也可以这样写,
    CREATE TRIGGER cfq2 ON mytable
    FOR UPDATE
    AS
    select * from inserted
    select * from deleted
      

  2.   

    有updated这个术语吗? 好象没有吧, update一条纪录以后,会把原来的纪录放到deleted里面,然后把要更新的纪录放到inserted里面。当提交到数据库的时候,是如下过程:  根据deleted里面的数据定位到数据源中的纪录,然后把定位到的纪录用inserted中的数据替换之, 这就是update更新的过程
      

  3.   

    xiaonvjing(飞扬) 说得很全面
      

  4.   

    updated那有这个东东看看触发器的格式。
      

  5.   

    其实我也知道没有updated这张表,但为了说清楚我的问题的意思,而引用了这样的一个表。
    因为这样问你们会很清楚我问这个问题的意图。感谢各位热心大虾回答,谢谢你们了。