求知若饥,虚心若愚

触发器学习

数据库表:

创建语句:

--table1

CREATE TABLE [dbo].[table1](     [id] [int] IDENTITY(1,1) NOT NULL,     [value] [varchar](10) NULL, CONSTRAINT [PK_table] PRIMARY KEY CLUSTERED (     [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]

--table2

CREATE TABLE [dbo].[table2](     [id] [int] IDENTITY(1,1) NOT NULL,     [count] [int] NOT NULL, CONSTRAINT [PK_table2] PRIMARY KEY CLUSTERED (     [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]

insert into table2(count) values(0)

--触发器语句,对table1进行插入或者删除操作会触发触发器更新table1的行数

CREATE TRIGGER insert_table1 ON table1

    FOR INSERT , DELETE

    AS BEGIN

        UPDATE table2 set count=(SELECT count(*) FROM table1) WHERE id=1;

    END; ===============================================================================================================================================

触发器知识:

一般格式:

CREATE TRIGGER <触发器名>

    {BEFORE | AFTER} <触发事件> ON <表名>

    FOR EACH {ROW | STATEMENT}

    [WHEN <触发条件>]

    <触发动作体>

触发事件:可以是INSERT、DELETE或UODATE,也可以是几个事件的组合。

触发器类型:可以分为行级触发器(FOR EACH ROW)和语句级触发器(FOR EACH STATEMENT)

 

posted @   初行  阅读(625)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

点击右上角即可分享
微信分享提示