-- 1 数据库服务

-- 2 触发器

CREATE TRIGGER no_insert
on xs
AFTER INSERT
AS
BEGIN
RAISERROR('XS不让插入数据',1,1);
ROLLBACK TRANSACTION
END

SELECT *
FROM XS WHERE 学号='14311011'

INSERT INTO xs(学号,姓名,总学分)
values('14311011','soar1','20')

EXEC Sp_helptext no_insert -- sys.sp_ -- 触发器的查看内容

-- 触发器的启用和禁用

-- 删除

DROP TRIGGER no_insert

--重命名
EXEC sp_rename no_insert,new_insert;

-- 禁用和启用触发器,语句

ALTER TABLE XS DISABLE TRIGGER new_insert

ALTER TABLE XS ENABLE TRIGGER new_insert

-- INSERT

-- DELETE

SELECT *
FROM XS WHERE 学号='14311011'

--

DELETE FROM XS
WHERE 学号='14311011'; -- 1

CREATE TRIGGER xs_del
ON XS
AFTER DELETE
AS
BEGIN
SELECT 学号 AS '被删除的学生',姓名 FROM deleted
END

-- UPDATE 更新 ,更新为 test

SELECT *
FROM XS WHERE 学号='14311011'

UPDATE XS SET 姓名='soar'
WHERE 学号='14311011'

SELECT LEN('soar.pang')

--
CREATE TRIGGER XS_UPDATE
ON XS
AFTER UPDATE
AS
BEGIN
SELECT 姓名 as '更改后',学号 FROM inserted;
SELECT 姓名 as '更新前',学号 FROM deleted;
END

-- 真的数据库的触发器

CREATE TRIGGER safty
ON DATABASE -- ALL SERVER 表
FOR DROP_TABLE,ALTER_TABLE -- AFTER
AS
BEGIN
PRINT '当前数据库禁止更新删除动作' --并更
ROLLBACK TRANSACTION
END

DROP TABLE Test_2019_02;

-- 表级、服务器、数据库级别

-- 级联
CREATE TRIGGER trigdel
ON XS
AFTER DELETE
AS
BEGIN
DELETE XK WHERE 学号=(SELECT 学号 from deleted)
END

SELECT * FROM XS where 学号='14311002'
SELECT * from xk where 学号='14311002' -- inner join
-- where

DELETE XS WHERE 学号='14311002'

-- 索引

-- 第一个索引 位置

20190422 T-SQL 触发器的更多相关文章

  1. SQL触发器实例讲解

    SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Inser ...

  2. SQL触发器实例

    SQL触发器实例讲解(本文是来自百度文库) 备注:本人建了一个站特价汇,我想记录每个商品的点击量,然后按照点击量来牌名商品,想要提高效率,所以必须得用触发器,下面是本人在百度文库中的找到的学习资料,分 ...

  3. SQL触发器中的deleted表和inserted表

    SQL触发器中的deleted表和inserted表 在触发器语句中用两个特殊的表一个是deleted表和inserted.它们是通过触发器操作自动创建驻留在内存中的临时表. 描述: Deleted表 ...

  4. SQL 触发器(学生,课程表,选修表)

    SQL 触发器(学生,课程表,选修表) 触发器是一种特殊类型的存储过程,它不由用户通过命令来执行,而是在用户对表执行了插入,删除或修改表中数据等操作时激活执行.可以这样形容:存储过程像一个遥控炸弹,我 ...

  5. Oracle数据库之PL/SQL触发器

    Oracle数据库之PL/SQL触发器 1. 介绍 触发器(trigger)是数据库提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是 ...

  6. PB+MS SQL+触发器必须指出

    PB+MS SQL+触发器必须指出: 若触发器存在两笔以上的返回值,比方两条update 语句,被误判为数据有改变.存盘不成功. 提示: Row changed between retrieve an ...

  7. SQL触发器实例(下)

    基本语法: Create Trigger [TriggerName] ON [TableName] FOR [Insert][,Delete][,Update] AS --触发器要执行的操作语句. G ...

  8. SQL 触发器-如何查看当前数据库中有哪些触发器

    在查询分析器中运行: use 数据库名goselect * from sysobjects where xtype='TR' sysobjects 保存着数据库的对象,其中 xtype 为 TR 的记 ...

  9. 【SQL Server】SQL触发器经验详解

    [SQL Server]SQL触发器经验详解 | 浏览: 4314 | 更新: 2013-01-07 15:33 25 11 全文阅读分步阅读   加入杂志 步骤 1 2 3 4 5 6 7 8   ...

  10. SQL触发器 inset自学经验

    本人建立了一个特价汇网站,想要记录每个商品的点击量和整个网站的访问量,于是就想用sql 触发器来实现 drop trigger tgr_cg_records_update_column create ...

随机推荐

  1. CentOS 7下PXE+Kickstart无人值守安装操作系统

    1.简介 1.1. 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支 ...

  2. Python2.x与3.x版本区别

    Python2.x与3.x版本区别 1.print 函数 print语句没有了,取而代之的是print()函数. Python 2.6与Python 2.7部分地支持这种形式的print语法.在Pyt ...

  3. java maven 编译文件时 有些类型文件 不存在

    在pom.xml中添加如下: <build> <resources> <resource> <directory>src/main/resource&l ...

  4. 阿里云ECS服务器无法上传文件的解决方案

    1.安装软件启动FTP服务 yum install vsftpd # 安装service vsftpd start # 启动服务chkconfig vsftpd on # 开机启动 2.防火墙ipta ...

  5. laravel5.8笔记四:中间件

    应用场景:检测登陆,控制器加载数据,传递常量 命令 //中间件创建命令 php artisan make:middleware Check 注意: 1.需要注册中间件 2.中间件命名不能重复   mi ...

  6. nginx set变量后lua无法改值

    今天在使用lua修改nginx自定义变量的时候,发现死活更改不了,如下所示: 有问题的代码 set $check "1"; rewrite_by_lua_file 'conf/ru ...

  7. Tomcat以Daemon的方式启动(CentOS6&7)

    1 前言 一直以来都觉得Tomcat以root身份运行非常不安全,故研究Tomcat如何以普通用户身份运行,以下是参考网络上的一些配置实现Tomcat以daemon方式运行于CentOS 6& ...

  8. store.state

    https://blog.csdn.net/qq_38658567/article/details/82847758

  9. LINUX下从mysql文件导出后标题合并

    这两天在做数据导出,真实折磨死了,记录下来.导出的格式是csv. 由于我们的数据量比较大,导出到excel时,几百万上千万行的时候用程序去写入肯定是不行,所以自然就想到了mysql的outfile功能 ...

  10. Louvain 算法原理

    Louvain算法是一种基于图数据的社区发现算法,算法的优化目标为最大化整个数据的模块度,模块度的计算如下: 其中m为图中边的总数量,k_i表示所有指向节点i的连边权重之和,k_j同理.A_{i,j} ...