列级触发器就是对表中的某列进行添加或修改时所执行的触发器。

建立列级触发器与建立触发器的语法是相同的,只是在创建时使用IF UPDATE(column)参数。

语法:

CREATE TRIGGER trigger_name

ON { table | view }

[ WITH ENCRYPTION ]

{

{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }

[ WITH APPEND ]

[ NOT FOR REPLICATION ]

AS

[ { IF UPDATE ( column )

[ { AND | OR } UPDATE ( column ) ]

[ ...n ]

| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )

{ comparison_operator } column_bitmask [ ...n ]

} ]

sql_statement [ ...n ]

}

}

参数说明:

IF UPDATE

(column):测试在指定列上进行的INSERT或UPDATE操作,不能用于DELETE操作,可以指定多列。因为在ON子句中指定了表名,所以在

IF

UPDATE子句中的列名前不要包含表名。若要测试在多个列上进行的INSERT或UPDATE操作,可在第一个操作后指定单独的

UPDATE(column)子句。在INSERT操作中IF UPDATE将返回TRUE值,因为这些列插入了显式值或隐性(NULL)值。

本示例在“MR_SQL”数据库的“MR_Stu_XX”表中创立一个列级触发器,当添加或修改“MR_Stu_XX”表中的“学生姓名”字段时,将在创建的“MR_Stu_JL”表中加以记录。

使用Transact-SQL建立列级触发器

操作步骤如下:

(1)打开SQL查询分析器。

(2)SQL语句如下:

在MR_SQL数据库中创建数据表MR_Stu_JL,用于记录修改MR_Stu_XX表时的时间、用户名等。

USE MR_SQL

GO

CREATE TABLE MR_Stu_JL

(

Data datetime,

MR_id char(4),

state varchar(16),

MR_name varchar(30)

)

GO

在“MR_Stu_XX”表中创建列级触发器“TRI_Stu_JL”,对“MR_Stu_XX”表的“学生编号”进行添加、修改时执行“TRI_Stu_JL”触发器。

CREATE TRIGGER TRI_Stu_JL ON dbo.MR_Stu_XX

FOR INSERT,UPDATE

AS

DECLARE @id char(4)

Select @id=学生编号 from Inserted

if UPDATE(学生姓名)

INSERT MR_Stu_JL VALUES(Getdate(),@id,'修改学生姓名',user_name())

GO

mysql 触发器 列级_列级触发器 SQL Server相关推荐

  1. MySQL如何制作报表_(MySQLToSQL) 生成报表 - SQL Server | Microsoft Docs

    生成报告 (MySQLToSQL)Generating Reports (MySQLToSQL) 01/19/2017 本文内容 使用命令执行的某些活动的报告在对象树级别的 SSMA 控制台中生成.T ...

  2. mysql事务日志备份_事务日志备份 (SQL Server)

    事务日志备份 (SQL Server)Transaction Log Backups (SQL Server) 01/05/2018 本文内容 适用于:Applies to: SQL ServerSQ ...

  3. SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)...

    原文:SQL Server自动化运维系列--监控磁盘剩余空间及SQL Server错误日志(Power Shell) 需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的 ...

  4. oracle自增列问题i,Oracle序列 和 SQL SERVER 自增列的问题-oracle

    现对一表进行如下操作,主键为ID 1.定义并启动一个事务 2.使用com智能指针打开表 _RecordsetPtr pRecPtr = m_pAdoDb->OpenTable(strSQL,ad ...

  5. mysql注入漏洞检查_漏洞检测:SQL注入漏洞 WASC Threat Classification

    1.      过滤用户输入的内容,检查用户输入的内容中是否有非法内容.如,|(竖线符号). & (& 符号).;(分号).$(美元符号).%(百分比符号).@(at 符号).'(单引 ...

  6. mysql和sql server能共存吗_让防火墙与SQL Server数据库共存

    欢迎进入Windows社区论坛,与300万技术人员互动交流 >>进入 安全与性能是数据库管理员的两块心头肉.而通过防火墙来保护数据库的安全无疑是一种不错的选择.但是有时会防火墙与SQL S ...

  7. 对警报线程池的警报线程_审核和警报SQL Server作业状态更改(启用或禁用)

    对警报线程池的警报线程 In this article, we will talk about how to track enabled or disabled SQL jobs in SQL Ser ...

  8. mysql查询第二个字母为a_MSSQL_关于SQL Server查询语句的使用,一.查询第二个字母是t或者a的 - phpStudy...

    关于SQL Server查询语句的使用 一.查询第二个字母是t或者a的雇员的全部信息 select * from employees where firstname like '_[t,a]%' 注意 ...

  9. mysql运用索引写出高效sql_从SQL Server到MySql(5) : 高性能的MySql 索引策略

    高效地选择和使用索引有很多种方式, 其中有些是针对特殊案例的优化方法, 有些则是针对特定行为的优化. 1 独立的列 如果查询中的列不是独立的, 则MySql 就不会使用索引. 索引列不能是表达式的一部 ...

最新文章

  1. 机器学习中的聚类算法(1):k-means算法
  2. python标准库很丰富支持多种编程范式_计算机考试简答题
  3. XamarinAndroid组件教程RecylerView动画组件使用动画(2)
  4. Unity2D游戏开发基础教程1.2 项目、资源和场景
  5. 数据挖掘应用现状与产品分析
  6. java 输出编码_从代码看java输入输出中的编码和解码
  7. 电大计算机网络网考,电大计算机网络(本)学习周期01任务A_0009答案
  8. IP地址与二进制转换
  9. linux 登入用户记录,linux记录所有用户登陆及执行过的命令脚本
  10. python 扫描仪_玩《Minecraft我的世界》学python编程,可领|取电子学习版本
  11. 手机modem开发(20)---公平性测试
  12. python使用缩进来体现-Python使用缩进来体现代码之间的逻辑关系。
  13. mysql实现开始时间和结束时间的查询
  14. 数字人正走进现实!AI大脑+高颜值
  15. OLAP分析引擎Druid配置文件详解(五):MiddleManager配置文件
  16. c#+wps插件开发(1)
  17. echarts自适应大小或改变窗体大小自适应大小与浏览器最大最小化事件
  18. 士成兄的面试经历(放弃5家offer终去了华为)
  19. 【合集】Jerry Wang 2018~2021 四年期间的 SAP 技术文章合集
  20. 同学,其实你可以不用周游世界……

热门文章

  1. Android透明到白色滑动渐变,Android开发之Activity全透明渐变切换方法
  2. delphi 安卓图片保存数据库_delphi数据库存储图片
  3. 5g鸿蒙概念,OPPO 5G概念机曝光!骁龙855+5000mAh+鸿蒙系统,续航太强悍
  4. java开发经验分享
  5. 我的世界java版建绿宝石农场_我的世界:你会用新版手动绿宝石农场吗?灾厄巡逻队搭配地狱门!...
  6. 真正爱你的男孩(女孩必看)转
  7. 怎么手写转文字?借助这3款工具轻松实现
  8. 你不能不知道的17个营销寓言……
  9. 百度爬虫:如何提高百度蜘蛛对网站的抓取量
  10. Cloudera Hadoop架构及Hadoop Common实现原理