CREATE TRIGGER trig_delete_transInfo
 ON transInfo
  FOR DELETE 
   AS
      print '开始备份数据,请稍后......'
      IF NOT EXISTS(SELECT * FROM sysobjects 
           WHERE name='backupTable')
         SELECT * INTO backupTable FROM deleted
     ELSE
         INSERT INTO backupTable SELECT * FROM deleted
      print '备份数据成功,备份表中的数据为:'
      SELECT * FROM backupTable 
GO 
上面的SQL代码中
IF NOT EXISTS(SELECT * FROM sysobjects 
           WHERE name='backupTable')
         SELECT * INTO backupTable FROM deleted
是什么意思?

解决方案 »

  1.   

    如果不存在表backupTable,则利用deleted虚拟表的数据创建表backupTable.
      

  2.   

    SELECT * INTO backupTable FROM deleted
    是什么意思?
      

  3.   


    使用 SELECT INTO 插入行
    SELECT INTO 语句创建一个新表,并用 SELECT 的结果集填充该表。新表的结构由选择列表中表达式的特性定义,例如:SELECT Shippers.*, Link.Address, Link.City,
                       Link.Region, Link.PostalCode
    INTO NewShippers
    FROM Shippers
         JOIN LinkServer.DB.dbo.Shippers AS Link
           ON (Shippers.ShipperID = Link.ShipperID)SELECT INTO 可将几个表或视图中的数据组合成一个表。也可用于创建一个包含选自链接服务器的数据的新表。
      

  4.   

    判断如果不存在backupTable表,则把虚拟表deleted里的所有数据插入到新建的表backupTable中
      

  5.   


    SELECT *     --查询所有列
    INTO backupTable --讲查询的数据插入新建表backupTable
    FROM deleted  --从deleted虚拟表中