sql server-在Mssql 的触发器中有没有和Mysql一样的AFTER和BEFORE的功能

问题描述

在Mssql 的触发器中有没有和Mysql一样的AFTER和BEFORE的功能

我用的数据库是Mssql,想要找一个对触发器有优先级的操作,就像Mysql中的AFTER和BEFORE一样的功能:AFTER 执行完操作之后.再执行这个触发器的语句..
BEFORE 执行完触发器的语句,再执行操作

请问各位大虾,在MSSQL中是否也有这样的一个东西存在呢?我是SqlServer 2008R2版本的!先感谢各位的鼎力相助~~~

解决方案

after:是先完成数据的增删改,然后再触发,触发的语句晚于监视的增删改,无法影响前面的增删改动作;也就是说先插入订单记录,再更新商品数量。当商品数量少于订单数量时造成爆库。
before:先完成触发,在进行增删改,触发语句先于监视的增删改,我们就有机会判断,修改即将发生的操作。
案例操作:
触发器使用after:
当某个订单的数量超过库存的数量时会出现库存为负数。造成所谓的爆库问题。
......
答案就在这里:MySQL触发器 trigger之after与before区分

时间: 2025-01-19 13:28:51

sql server-在Mssql 的触发器中有没有和Mysql一样的AFTER和BEFORE的功能的相关文章

浅谈sql server的存储过程和触发器

一.存储过程 1.存储过程的分类 存储过程是一种数据库对象,存储在数据库内,可由应用程序通过一个调用执行,而且 允许用户声明变量.有条件执行,具有很强的编程功能 存储过程可以分为两类:系统存储过程.用户存储过程和扩展性存储过程 1).系统存储过程 系统存储过程是由SQL Server系统提供的存储过程,可以作为命令执行各种操作. 系统存储过程主要用来从系统表中获取信息,为系统管理员管理SQL Server提供帮助, 为用户查看数据库对象提供方便. 系统存储过程定义在系统数据库master中,其前

SQL Server 开发之 使用触发器自动编号

server|触发器 使用SQL Server创建数字类型的字段,可以设置为自动编号.但很多时候并不能满足我们的需求,例如为学生编号时,可能要用到年级.系别等再加上流水号进行编号.下面给一个简单的例子,使用触发器来进行自动编号.--创建测试表     if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[usertable]') and OBJECTPROPERTY(id, N'IsUserTable') =

在SQL Server 2005的ddl触发器中使用eventdata()函数

问题 在您的服务器实例中,针对SQL Server 2005的提示里,在运行数据定义语言 (Create,Alter,Drop)的命令中,你就可以看到如何跟踪DDL的活动,但我们如何 存储这些事件,用来捕获这些DDL触发器并且存储在表中为反馈的信息呢? Solution解决方案 在SQL Server 2005中 ,您可以通过访问eventdata ( )函数,用来触发ddl事 件而获取数据. 这个函数返回的是服务器或数据库事件的信息,并以XML数据类 型的方式储存在一个变量中使用. 我们需要做

SQL Server 2005中DDL触发器的实现

SQL SERVER 2005中,新增加了许多新的特性,其中的DDL触发器是个不错的选择,根据资料初步学习如下,现整理之. 在sql server 2000中,只能为针对表发出的 DML 语句(INSERT.UPDATE 和 DELETE)定义 AFTER 触发器.SQL Server 2005 可以就整个服务器或数据库的某个范围为 DDL 事件定义触发器. 可以为单个 DDL 语句(例如,CREATE_TABLE)或者为一组语句(例如,DDL_DATABASE_LEVEL_EVENTS)定义

SQL Server 2000中的触发器使用_MsSql

下面我摘录了SQL Server官方教程中的一段关于触发器的文字,确实有用的一点文字描述. 可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的触发器. 当触发INSERT触发器时,新的数据行就会被插入到触发器表和inserted表中.inserted表是一个逻辑表,它包含了已经插入的数据行的一个副本.inserted表包含了INSERT语句中已记录的插入动作.inserted表还允许引用由初始化INSERT语句而产生的日志数据.触发器通过检查inserted表来确定是否执行触发器动

SQL Server 2000中的触发器使用

下面我摘录了SQL Server官方教程中的一段关于触发器的文字,确实有用的一点文字描述. 可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的触发器. 当触发INSERT触发器时,新的数据行就会被插入到触发器表和inserted表中.inserted表是一个逻辑表,它包含了已经插入的数据行的一个副本.inserted表包含了INSERT语句中已记录的插入动作.inserted表还允许引用由初始化INSERT语句而产生的日志数据.触发器通过检查inserted表来确定是否执行触发器动

查看SQL SERVER 加密存储过程,函数,触发器,视图

server|触发器|存储过程|函数|加密|视图 create  PROCEDURE sp_decrypt(@objectname varchar(50))ASbeginset nocount on--CSDN:j9988 copyright:2004.07.15 --V3.2 --破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器--修正上一版"视图触发器"不能正确解密错误--发现有错,请E_MAIL:CSDNj9988@tom.combegin tran

SQL Server数据库中使用触发器经验谈

本文通过讲解触发器的使用,其中重要的是理解inserted过程.当在定义有触发器的表上执行UPDATE语句时,原始行(前像)被移入到deleted表,更新行(后像)被移入到inserted表.触发器检查deleted表和inserted表以及被更新的表,来确定是否更新了多行以及如何执行触发器动作. 触发器是数据库应用中的重用工具,它的应用很广泛.这几天写一个化学数据统计方面的软件,需要根据采样,自动计算方差,在这里,我使用了触发器.可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的

如何使用SQL Server INSTEAD-OF触发器

触发器是类似于存储程序的数据库对象,它响应数据库环境下的某个请求.SQL Sever 2005包含3个触发器对象:AFTER,数据定义语言 (DDL)和INSTEAD-OF. AFTER触发器是存储程序,它发生于数据操作语句作用之后,例如删除语句等.DDL是SQL Server 2005的新触发器,允许响应数据库引擎中对象定义水平事件(例如:DROP TABLE语句).INSTEAD-OF触发器是对象,在数据库引擎中可以取代数据操作语句而执行.例如:将INSTEAD-OF INSERT触发器附加