`
dxflygao
  • 浏览: 66007 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

trigger 的应用

    博客分类:
  • db
阅读更多

/*
 触发器的使用:有三种 insert,update ,delete
    触发器执行时机:上述操作时
    举例:当在学生表中插入一条记录时,默认地也在loginAccount中插入(生成)一条该生
   的登陆帐号,这种情形,可以用insert触发器来实现。
   在使用触发器的过程中会牵涉到两个临时表: inserted,updated表.
         inserted表         deleted表
   insert触发器前:      新记录                空
   insert触发器后:      刚插入的记录          空
   update触发器前:    空     空
   update触发器后:  旧记录    新纪录
   delete触发器前:  空     被删除的纪录
*/

SELECT [stuId]
      ,[stuName]
  FROM [dbDemo].[dbo].[student]

/*创建一个 表,当在学生表中插入一条记录后,该表也应增加一条关于该学生的登录帐号*/
create table loginAccount
(
 loginId int primary key foreign key references student(stuId),
    loginPwd nvarchar(20) not null
)
/*创建一个触发器 用于完成上述业务*/
CREATE TRIGGER setAccount
on student //对student表设置触发器
 after insert //该触发器是insert触发器,且是insert后执行
as
 declare  @loginid int    //声明一个变量
 /*从inserted临时表中得到Id号,并赋给变量 */
     select @loginid= stuid from inserted 
   /*插入记录到loginAccount表中*/
 INSERT INTO loginAccount values(@loginid,'student')

insert into student values(1006,'trigger2')

select * from loginAccount

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics