sql 触发器使用例子
在数据库触发器世界中,存在两个特别的临时表:inserted 和 deleted。它们扮演着重要的角色,在数据变动时,存储着关键信息。
相反,当执行删除(delete)操作时,deleted表开始发挥作用。它就像记录着逝去生命的殓房,存储着被删除的记录的“遗骸”。你可以想象它为数据库中的“删除历史”区域,存放着那些被标记为删除的数据。
但当我们谈论更新(update)操作时,情况变得更为复杂。虽然触发器中没有专门的updated表,但我们可以通过inserted和deleted表捕捉到更新的信息。想象一下,你正在修改一个已经存在的记录。修改前的信息会“遗留”在deleted表中,而修改后的新信息则在inserted表中“崭露头角”。这是一种奇妙的方式来捕捉数据变动的瞬间。
```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
```
接下来是删除操作的触发器:
```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
```
最后是更新操作的触发器示例:
```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
```c Cambrian的body渲染完成。
编程语言
- sql 触发器使用例子
- MySQL插入时间差八小时问题的解决方法
- 详解php几行代码实现CSV格式文件输出
- JS输出空格的简单实现方法
- php解决抢购秒杀抽奖等大流量并发入库导致的库
- laravel数据库查询结果自动转数组修改实例
- jQuery的each循环用法简单示例
- layui select 禁止点击的实现方法
- jquery实现tab选项卡切换效果(悬停、下方横线动
- php 时间time与日期date之间的使用详解及区别
- PHP文章按日期(月日)SQL归档语句
- 关于程序员生活的一份调查,看看你属于哪一个
- jQuery实现切换字体大小的方法
- NET页面导出Excel实例代码
- Javascript生成带参数的二维码示例
- sqlserver 字符串分拆 语句