创建用于监视对student表进行插入和更新操作的触发器

None.gif -- 创建用于监视对student表进行插入和更新操作的触发器
None.gif

None.gif
IF   EXISTS  ( SELECT  name  FROM  master.dbo.sysdatabases  WHERE  name  =  N ' StudentTest ' )
None.gif    
DROP   DATABASE   [ StudentTest ]
None.gif
GO
None.gif
None.gif
CREATE   DATABASE   [ StudentTest ]    ON  (NAME  =  N ' carTest ' , FILENAME  =  N ' D:\SqlData\StudentTest.mdf '  , SIZE  =   2 , FILEGROWTH  =   10 % LOG   ON  (NAME  =  N ' carTest_log ' , FILENAME  =  N ' D:\SqlData\StudentTest_log.LDF '  , FILEGROWTH  =   10 % )
None.gif
GO
None.gif
None.gif
None.gif
use  StudentTest
None.gif
GO
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[student] ' and   OBJECTPROPERTY (id, N ' IsUserTable ' =   1 )
None.gif
drop   table   [ dbo ] . [ student ]
None.gif
GO
None.gif
None.gif
create   table  student 
None.gif(
None.gif  id 
uniqueidentifier   default   newid (),
None.gif  name 
nvarchar ( 50 ),
None.gif  address 
nvarchar ( 50 ),
None.gif  registeDate 
datetime   default   getdate ()
None.gif  
primary   key (id)
None.gif)
None.gif
None.gif
insert   into  student (name,address ) values ( ' frj ' , ' hunan ' )
None.gif
insert   into  student (name,address ) values ( ' hlk ' , ' shiquan ' )
None.gif
insert   into  student (name,address ) values ( ' hlb ' , ' shiquan ' )
None.gif
-- select * from student
None.gif

None.gif
select   top   2  name ,address  from  student
None.gif
go
None.gif
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[InsertRecordTable] ' and   OBJECTPROPERTY (id, N ' IsUserTable ' =   1 )
None.gif
drop   table   [ dbo ] . [ InsertRecordTable ]
None.gif
GO
None.gif
None.gif
None.gif
create   table  InsertRecordTable
None.gif(
None.gif  TableName          
nvarchar ( 50 ),      -- 插入数据的表名
None.gif
  NumOfRecord         uniqueidentifier -- 插入数据的纪录编号
None.gif
  InsertDate          DateTime   default   getdate (),  -- 插入数据的日期
None.gif
  NumOfCheckpoint     nvarchar ( 50 ),      -- 检测站编号
None.gif
  ReserveFild1  nvarchar ( 50 ),            -- 保留字段1
None.gif
  ReserveFild2  nvarchar ( 50 ),            -- 保留字段2
None.gif
  ReserveFild3  nvarchar ( 50 )             -- 保留字段3 
None.gif
)
None.gif
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[UpdateRecordTable] ' and   OBJECTPROPERTY (id, N ' IsUserTable ' =   1 )
None.gif
drop   table   [ dbo ] . [ UpdateRecordTable ]
None.gif
GO
None.gif
create   table  UpdateRecordTable
None.gif(
None.gif  TableName          
nvarchar ( 50 ),      -- 插入数据的表名
None.gif
  NumOfRecord         uniqueidentifier -- 插入数据的纪录编号
None.gif
  UpdateDate          DateTime   default   getdate (),  -- 插入数据的日期
None.gif
  NumOfCheckpoint     nvarchar ( 50 ),      -- 检测站编号
None.gif
  ReserveFild1  nvarchar ( 50 ),            -- 保留字段1
None.gif
  ReserveFild2  nvarchar ( 50 ),            -- 保留字段2
None.gif
  ReserveFild3  nvarchar ( 50 )             -- 保留字段3 
None.gif
)
None.gif
None.gif
GO
None.gif
-- 创建监视插入数据的触发器
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[student_insert] ' and   OBJECTPROPERTY (id, N ' IsTrigger ' =   1 )
None.gif
drop   trigger   [ dbo ] . [ student_insert ]
None.gif
go
None.gif
CREATE   TRIGGER  student_insert  ON  student
None.gif
FOR   INSERT
None.gif
AS
None.gif
DECLARE   @id   uniqueidentifier
None.gif
DECLARE  c1  CURSOR   FOR
None.gif   
SELECT  inserted.id
None.gif   
FROM    student, inserted
None.gif   
WHERE  student.id  =  inserted.id
None.gif
OPEN  c1
None.gif
FETCH   NEXT   FROM  c1  INTO   @id
None.gif
WHILE   @@fetch_status   =   0
None.gif
BEGIN
None.gif   
INSERT   INTO  InsertRecordTable (TableName,NumOfRecord)  VALUES ( ' STUDENT ' , @id )
None.gif   
FETCH   NEXT   FROM  c1  INTO   @id
None.gif
END
None.gif
CLOSE  c1
None.gif
DEALLOCATE  c1
None.gif
GO
None.gif
None.gif
--  Insert some test data rows.
None.gif
delete   from  student  where  name = ' frj888 '   or  name = ' frj999 '   OR  NAME = ' HAO888 '   OR  NAME = ' HAO999 '
None.gif
INSERT  student(name, address)  VALUES  ( ' frj888 ' ' hunan ' )
None.gif
INSERT  student(name, address)  VALUES  ( ' frj999 ' ' shiquan ' )
None.gif
None.gif
GO
None.gif
SELECT   *   FROM  student
None.gif
GO
None.gif
None.gif
SELECT   *   FROM  insertrecordtable
None.gif
GO
None.gif
None.gif
None.gif
-- 创建用于监视对student表进行更新数据的触发器
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[student_update] ' and   OBJECTPROPERTY (id, N ' IsTrigger ' =   1 )
None.gif
drop   trigger   [ dbo ] . [ student_update ]
None.gif
None.gif
GO
None.gif
CREATE   TRIGGER  student_update  ON  student  FOR   UPDATE
None.gif
AS
None.gif
IF   UPDATE  (name)
None.gif
BEGIN
None.gif
DECLARE   @id   uniqueidentifier
None.gif
DECLARE  c1  CURSOR   FOR
None.gif   
SELECT  deleted.id
None.gif   
FROM    student, deleted
None.gif   
WHERE  student.id  =  deleted.id
None.gif
OPEN  c1
None.gif
FETCH   NEXT   FROM  c1  INTO   @id
None.gif
WHILE   @@fetch_status   =   0
None.gif
BEGIN
None.gif   
INSERT   INTO  UpdateRecordTable (TableName,NumOfRecord)  VALUES ( ' STUDENT ' , @id )
None.gif   
FETCH   NEXT   FROM  c1  INTO   @id
None.gif
END
None.gif
CLOSE  c1
None.gif
DEALLOCATE  c1
None.gif
END
None.gif
GO
None.gif
None.gif
UPDATE  STUDENT  SET  NAME = ' HAO999 '
None.gif
WHERE  NAME  =   ' FRJ999 '
None.gif
UPDATE  STUDENT  SET  ADDRESS = ' HAO888 '
None.gif
WHERE  NAME  =   ' FRJ888 '
None.gif
GO
None.gif
SELECT   *   FROM  UpdateRecordTable
None.gif
select   *   from  student
None.gif
GO
None.gif
None.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值