sql 触发器例子
```sql
SET ANSI_NULLS ON;
SET QUOTED_IDENTIFIER ON;
GO
ALTER TRIGGER [dnt_user_add] ON [dbo].[dnt_users]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [dnt_userfields](uid)
SELECT uid FROM inserted;
END
```
接下来,让我们看看删除操作的触发器。当从[dnt_users]表中删除数据时,[dnt_users_del]触发器就会接管任务,从[dnt_userfields]表中删除与已删除用户对应的记录。代码如下:
```sql
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE TRIGGER [dnt_users_del] ON [dnt_users]
AFTER DELETE
AS
BEGIN
SET NOCOUNT ON;
DELETE FROM [dnt_userfields] WHERE [dnt_userfields].uid = deleted.uid;
END
GO
```
让我们一下更新操作的触发器。当对[dnt_users]表进行更新操作时,[dnt_users_up]触发器就会被激活。这个触发器的任务是将更新后的用户的uid信息同步到[dnt_userfields]表中。虽然触发器中没有直接的"updated"表,但我们可以通过inserted和deleted表获取更新前后的数据。代码如下:
```sql
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
ALTER TRIGGER [dnt_users_up] ON [dnt_users]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE [dnt_userfields] SET icq = inserted.uid FROM inserted WHERE [dnt_userfields].uid = inserted.uid;
END
GO
```
通过合理利用inserted和deleted这两个临时表,我们可以在数据库的数据发生变动时,实现各种复杂的同步和操作任务。这就是触发器的魅力所在。
seo推广
- 2014年Godaddy帐号注册教程、Push接收、解析、DNS修
- Win10开启旧版托盘时钟让其符合以往的习惯
- 湖南3家微信公众账号传播恶性谣言被关停
- 想使用PE里没有的程序如何把程序打包进WinPE中
- win10预览版10041官方下载地址 win10预览版10041下载
- 本本加内存后为何还变慢了?
- Ecshop后台拿shell方法总结
- AI简单绘制超美的渐变试管图片教程
- Dreamweaver CS6怎么使用项目列表-
- 夜班配置 夜班最低配置及要求
- 客户端安装过程中提示RegCreateKeyEx失败.错误码5
- WinCfg32.exe - WinCfg32是什么进程
- VC7SecS.exe是什么进程.有什么用
- css3 条纹化和透明化表格Firefox下测试成功
- MirOS BSD Korn Shell本地权限提升漏洞
- 上网本在播放视频时,音频出现停顿现象是什么原