触发器

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 16:03:151156browse

虽然接触过触发器,可是却不太深入,有的时候碰到还是照样不太理解,现在将这一块空白补上。 触发器内容基本上如下: 值得注意的一点是:在触发器被执行时,系统会创建一个或者两个临时表Inserted和Deleted。用户保存用户更改行的新值和旧值。对于insert操作

虽然接触过触发器,可是却不太深入,有的时候碰到还是照样不太理解,现在将这一块空白补上。

触发器内容基本上如下:

\

值得注意的一点是:在触发器被执行时,系统会创建一个或者两个临时表Inserted和Deleted。用户保存用户更改行的新值和旧值。对于insert操作只会产生Inserted表,保存新插入的每条数据;对于delete操作,只会产生Deleted表,保存被删除的每条数据;对于update操作会同时产生Inserted表和Deleted表,Deleted表中存放的是更新之前的数据,Inserted表中存放的是更新之后的数据。触发器中可以直接使用这两张表。

下面举个具体的例子来说明一下:

以FOR触发器为例:

对于login表,原来数据如下:

计算机生成了可选文字:USefN己meUSeFPWd123从尤Luserlden灯fy管理员从卫L

触发器的编写过程如下:

计算机生成了可选文字:A毛TERTRIGGER[dbo].[triqupdate]ON[dbo].[loglnlFORUPDATEASBEGIN…一定义临时变量.declareeuserNa功evarchar(20户一查询刚刚更新的数据:用户名(SQL语句将管理员更新成操作员)3ele╧yWPG32V1c2VyTmFsci5lPXVzZXJOYXjN9mVmcmHYo0luc2Vyxt9lZNK7uPzQwsnPw+ay6bW9tcTTw7unw/u1xNPDu6fD3MLrdXBkYXRlbG9xbG4zZcbfdTNlclCzxGQ9"lj'where议serN柳e=eu3e:N锄e曰―END" style="max-width:90%" src="http://www.68idc.cn/help/uploads/allimg/150527/141IK0R-2.png" width="544" />

执行如下语句和得到的结果如下图所示:

计算机生成了可选文字:口J日―一叨口‘J~.曰updateloqlnL,elec:一,二。msetUserldentiwhereuserNaI0e=

通过上面两个结果的对比,SQL语句将用户身份由管理员->操作员,for触发器改变了用户密码,由123->lj。就是这样一个过程。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn