MSSQL 触发器

摘要:
--返回时间)--EXECsp_rename'student.sid',GETDATE())----------------if(object_id('truStudent',
---触发器练习

--在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序
 CREATE TABLE Student 
 ( 
    SID INT PRIMARY KEY       --学号 
 ) 

 CREATE TABLE BorrowRecord
    (
      --学生借书记录表 
      BorrowRecord INT IDENTITY(1, 1) ,       --流水号   
      StudentID INT ,                    --学号 
      BorrowDate DATETIME ,                --借出时间 
      ReturnDAte DATETIME,                --归还时间 
       
      
    )
--EXEC sp_rename 'student.sid', 'studentid', 'COLUMN'
INSERT BorrowRecord VALUES(1,GETDATE(),GETDATE())
INSERT BorrowRecord VALUES(1,GETDATE(),GETDATE())

INSERT BorrowRecord VALUES(2,GETDATE(),GETDATE())

INSERT BorrowRecord VALUES(3,GETDATE(),GETDATE())

------------Insert----------------------------
if (object_id('tr_insert', 'TR') is not null)    
drop trigger tr_insert
go
CREATE TRIGGER tr_insert
ON BorrowRecord
FOR insert
as
DECLARE @studentid INT;
SELECT @studentid=studentid FROM INSERTED
INSERT INTO student VALUES(@studentid) ;
go
INSERT BorrowRecord VALUES(11,GETDATE(),GETDATE())
----------------Update---------------------------
if (object_id('truStudent', 'TR') is not null)    
drop trigger truStudent
go
create TRIGGER truStudent 
    ON student --在Student表中创建触发器 
    FOR UPDATE --为什么事件触发
AS
    IF UPDATE(studentid) 
        BEGIN
            UPDATE  BorrowRecord
            SET     StudentID = i.studentid
            FROM    BorrowRecord br ,
                    DELETED d ,
                    INSERTED i
            WHERE   br.StudentID = d.studentid

        END
--实例
UPDATE student SET studentid=2 WHERE studentid=7
SELECT * FROM BorrowRecord
SELECT * FROM student
----------------delete---------------------------
if (object_id('deletri', 'TR') is not null)    
drop trigger deletri
go
CREATE TRIGGER deletri
ON student
FOR DELETE
AS 
DELETE BorrowRecord FROM BorrowRecord br,DELETED d
WHERE br.StudentID=d.studentid
--实例
DELETE FROM student WHERE studentid=7
SELECT * FROM BorrowRecord

免责声明:文章转载自《MSSQL 触发器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Selenium学习之==>ActionChainsApi接口详解1.16 sqoop options-file参数进行运行任务下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

网络编程【二】socket(套接字)初识

socket(套接字)  基于tcp协议的socket tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 server端 import socket sk = socket.socket() sk.bind(('127.0.0.1',8898)) #把地址绑定到套接字 sk.listen() #监听链接 conn...

admin 的使用及参数配置

admin的使用 创建超级用户 在admin.py注册模型表 admin.site.register(models.author) django默认注册两张自带的表 admin 生成自定义模型url的规律 http://127.0.0...

用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)

前几天接到一个任务,从gerrit上通过ssh命令获取一些commit相关的数据到文本文档中,随后将这些数据存入Excel中。数据格式如下图所示 观察上图可知,存在文本文档中的数据符合一定的格式,通过python读取、正则表达式处理并写入Excel文档将大大减少人工处理的工作量。   1. 从gerrit获取原始信息,存入文本文档:    $ssh –p...

自动化运维工具puppet详解(二)

一、class 类   1)什么是类?   类是puppet中命名的代码模块,常用于定义一组通用目标的资源,可在puppet全局调用;  类可以被继承,也可以包含子类;  具体定义的语法如下: class NAME{ ... puppet code ... }   其中,在我们定义的时候,需要注意的是: 类的名称只能以小写字母开头,可以包含小字字母、...

eslint 的基本配置介绍

eslint 这个代码规则,是在用webpack +vue-cli这个脚手架时候接触的,默认的规则可能不太习惯我们日常平时的代码开发,需要对这个规则稍加改造。 下面的是 eslintrc.js的基本规则(语句分号结尾,支持空格和tab的混合缩进) // https://eslint.org/docs/user-guide/configuring mod...

Gitlab per-recive预处理配置

背景:通过git提交规约对开发者的提交进行限制,为了后期对开发者提交动作进行分析与相关数据的报表展示。 Gitlab提供的钩子           1.1 单一仓库               通过此模式,我们可以将自定义的预处理代码部署到指定的仓库。           1.2 激活方式                 源码安装的配置目录,通常如下:  ...