部门表_删除:

USE [test]
GO /****** Object: Trigger [dbo].[部门_Delete] Script Date: 2015/8/31 16:41:46 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO -- =============================================
-- Author: <Author,Ammy,Name>
-- Create date: <Create Date,,>
-- Description: <Description,显示一次操作触发器修改了多少条记录,>
--因为每个操作类型在一次操作时,对一个触发器只激活一次,但是运行的操作可能更新或删除了10条记录,
--Inserted表和Deleted表里会有10条记录,用系统变量@@ROWCOUNT 可以得知上一次操作所更改的记录数
-- =============================================
CREATE TRIGGER [dbo].[部门_Delete]
ON [test].[dbo].[部门表]
AFTER DELETE
AS
BEGIN
PRINT '您此次删除了'+CAST(@@ROWCOUNT AS VARCHAR)+'条记录'
END GO

部门表_插入:

USE [test]
GO /****** Object: Trigger [dbo].[部门_Insert] Script Date: 2015/8/31 16:42:29 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO -- =============================================
-- Author: <Author,Ammy,Name>
-- Create date: <Create Date,//,>
-- Description: <Description,部门表插入时发出提示:又添加了一种产品,并向日志表插入一条记录>
-- =============================================
CREATE TRIGGER [dbo].[部门_Insert]
ON [dbo].[部门表]
AFTER INSERT
AS
BEGIN
DECLARE @事件部门名称 NVARCHAR() SELECT @事件部门名称=部门名称 FROM inserted IF(SELECT LEN(电话号码) FROM inserted )<>
BEGIN
PRINT'电话号码位数必须是11位'
ROLLBACK TRANSACTION
END
ELSE
BEGIN
print '又添加了一个部门'
INSERT INTO test.dbo.日志表(事件名,事件人,事件时间)VALUES('添加新部门:'+@事件部门名称,'admin',GETDATE());
--设置此TRIGGER的嵌套类型为true,如果在 dbo.日志表 上建立触发器,会触发激活dbo.日志表_Insert 触发器
END END GO

部门表_更新:

USE [test]
GO /****** Object: Trigger [dbo].[部门表_只能修改部门编号] Script Date: 2015/8/31 16:43:17 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO -- =============================================
-- Author: <Author,Ammy,Name>
-- Create date: <Create Date,--,>
-- Description: <Description,用update(字段名),完成只能修改某字段的触发器>
-- =============================================
CREATE TRIGGER [dbo].[部门表_只能修改部门编号]
ON [dbo].[部门表]
Instead of UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF UPDATE(部门编号)
BEGIN
DECLARE @部门编号 NVARCHAR(),
@部门名称 NVARCHAR(),
@部门职责 Nvarchar() SET @部门编号=(SELECT 部门编号 FROM inserted)
SET @部门名称=(SELECT 部门名称 FROM inserted)
SET @部门职责 =(SELECT 部门职责 FROM inserted) UPDATE 部门表 SET 部门编号=@部门编号
WHERE 部门名称=@部门名称--AND 部门编号=@部门编号 AND @部门职责=@部门职责
--这种写法很不好,因为只能操作的语句只能按这种修改才起作用
END
ELSE
BEGIN
PRINT '只能修改部门编号'
RAISERROR('除了部门编号之外的字段都不允许修改',,)
--PRINT 输出自定义信息,但是只能在查询编辑器窗格中运行SQL语句才能看到这些自定义的信息,
--而其他的前端应用程序都不会显示这些自定义的信息
END
END GO

日志表触发器:

USE [test]
GO /****** Object: Trigger [dbo].[日志表_Insert] Script Date: 2015/8/31 16:44:11 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO -- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE TRIGGER [dbo].[日志表_Insert]
ON [test].[dbo].[日志表]
AFTER INSERT
AS
BEGIN
PRINT'数据库又有记录变动了'
END GO

数据库触发器_trigger的更多相关文章

  1. 数据库触发器new old

    数据库触发器new old: "NEW . column_name"或者"OLD . column_name".这样在技术上处理(NEW | OLD . col ...

  2. sqlserver数据库触发器调用外部exe

    sqlserver数据库触发器调用外部exe,同事可以选择参入参数! sqlserver使用 master..xp_cmdshell 进行外部exe的执行. 使用master..xp_cmdshell ...

  3. Mysql数据库触发器调用脚本

    一.数据库触发器 mysql触发器trigger 实例详解 对数据库触发器new和old的理解 示例 二.UDF mySql的UDF是什么 三.安装执行命令UDF mysql触发器调用外部脚本(安装) ...

  4. 数据库级别DDL操作监控审计、数据库触发器/服务器触发器

    关键词:数据库触发器/服务器触发器  ,数据库级别DDL操作监控审计,禁止修改登录名密码 [1]数据库级别DDL操作监控审计 转自2012示例库,只能数据库级别,不能实例级别 use database ...

  5. Oracle12c中多宿主环境(CDB&amp;PDB)的数据库触发器(Database Trigger)

    Oracle12c中可插拔数据库(PDBs)上的多宿主数据库触发器 随着多宿主选项的引入,数据库事件触发器可以在CDB和PDB范围内创建. 1.   触发器范围 为了在CDB中创建数据库事件触发器,需 ...

  6. 对数据库触发器new和old的理解

    在数据库的触发器中经常会用到更新前的值和更新后的值,所有要理解new和old的作用很重要.当时我有个情况是这样的:我要插入一行数据,在行要去其他表中获得一个单价,然后和这行的数据进行相乘的到总金额,将 ...

  7. SQL 数据库 触发器 、事务

    触发器类型有两种: 1.AFTER(FOR)触发器 在动作执行之后触发(增删改执行完成后,触发器中的代码再执行),不能为视图指定for触发器,只能为表指定该触发器. 2.instead of触发器 可 ...

  8. Oracle数据库——触发器的创建与应用

    一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数 ...

  9. mysql数据库 触发器简单实例

    触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/befo ...

随机推荐

  1. zynqmp(zcu102rev1.0)系列---1---安装 xsdk

    Xilinx 的zynq7020在设备上面已经使用上,并量产,关于zynq7020使用总结将在近期同步进行. 该系列主要记录Xilinx zynqmp系列 的使用以及在遇到的问题.目前手上有一块dem ...

  2. 智能合约开发——以太坊 DApp 实现 购买通证token

    合约的buy()方法用于提供购买股票的接口.注意关键字payable,有了它买股票的人才可以付钱给你. 接收钱没有比这个再简单的了! function buy() payable public ret ...

  3. Linux之mysql安装

    查看文件内容的命令有很多:cat, tac, more, less, head, tail, nl. cat由第一行开始显示档案内容:tac从最后一行开始显示,可以看出tac是cat的倒着写:more ...

  4. Qt5.5.0在Linux下静态编译(加上-fontconfig编译项才能显示中文) good

    测试系统环境:Ubuntu12.04 (32bit/64bit)编译软件环境:QT5.5.0   本文章主要介绍Linux下QT静态编译环境的搭建,以及如何编译我们的程序board_driver. 1 ...

  5. 设置windows2008系统缓存大小限制,解决服务器运行久了因物理内存耗尽出僵死(提升权限后,使用SetSystemFileCacheSize API函数,并将此做成了一个Service)

    声明: 找到服务器僵死的原因了,原因是虚拟内存设置小于物理内存. 只要虚拟内存设置为系统默认大小就不会出生僵死的现象了. 当时因为服务器内存48G,系统默认虚拟内存大小也是48G, 觉得太占硬盘空间, ...

  6. 如何用C++操作无线网卡开启共享热点WiFi?

    首先需要笔记本具备AP热点功能,记得写好的程序必须用管理员身份运行. 准备工作需要先做好 //查看是否支持的承载网络 netsh wlan show drivers //设置网络模式为allow ne ...

  7. Design Thinking Workshop @ Agile Tour 2013 Shanghai

    设计思维工作坊 上周日在2013年敏捷之旅上海站,引导分享了一个设计思维的工作坊.这个工作坊持续了3个小时.来篇流水账分享给大家. 我们的设计挑战是什么呢?左思右想,在准备设计挑战题目的时候纠结了好久 ...

  8. 减少Qt编译时间暨简单Qt裁剪

    本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息.原文链接.原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途. 谢谢合作.原文链接:减少Qt编译时间暨简单Qt裁剪 编译一 ...

  9. .NET Core RC2在Linux下部署

    前言 目前ASP.NET Core RC2已经正式发布了,可以参考如下链接: https://blogs.msdn.microsoft.com/dotnet/2016/05/06/net-core-r ...

  10. shell多线程(3)while循环

    start="2018-06-17" end="2018-07-01" min=`date -d "${start}" +%Y%m%d` m ...