sql触发器delete与update操作

编写触发器:

 代码如下 复制代码
create trigger BlogDelet
on Blog
instead of delete
as
delete from Comment
where CommentBlog in (select Id from deleted)

创建一个Update触发器:

 代码如下 复制代码

     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      --Deleted和Inserted临时表
           Where br.StudentID=d.StudentID

       end      

 

更多详细的关于sql触发器可参考http://www.111cn.net/database/mssqlserver/39336.htm

时间: 2025-01-26 14:14:24

sql触发器delete与update操作的相关文章

SQL触发器实例讲解

SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程.  常见的触发器有三种:分别应用于Insert , Update , Delete 事件.  我为什么要使用触发器?比如,这么两个表: 复制代码代码如下: Create Table Student( --学生表  StudentID int primary key, --学号  ....  )  Create Table BorrowRec

SQL触发器实例讲解_MsSql

SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Insert , Update , Delete 事件. 我为什么要使用触发器?比如,这么两个表: 复制代码 代码如下: Create Table Student( --学生表 StudentID int primary key, --学号 .... ) Create Table BorrowRecord(

sql-新手学习SQL触发器的问题

问题描述 新手学习SQL触发器的问题 A库A表与B库的A表结构完全一样! 触发器该怎么写实现 才能实现 增加 修改 删除A库A表,同时对B库A表 做同样的动作. 也就是同步2个数据库 解决方案 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 解决方案二: 不太懂...???..???????? 解决方案三: 不太懂...???..???????? 解决方案四: 不知道呢............... 解决方案五: 求采纳,缺积分.加油!我看好你 解决方案六: create trigger test after

SqlServer2008误操作数据(delete或者update)后恢复数据的方法_mssql2008

实际工作中,有时会直接在数据库中操作数据,比如对数据进行delete或者update操作,当进行这些操作的时候,如果没有加上 where条件或者where条件不合理,那么导致的结果可想而知,如果操作的又是线上数据库,那么这个后果将会非常严重. 当事情发生后,我们要想办法补救,针对于sqlserver2005数据库,有个很出名的工具Log Exploer.具体操作使用大家可以自行搜索;针对于sqlserver2008也有这样的工具,但是大多是需要付费的...我们尝试用 sqlserver的事务日志

sql生成(mssql对于表的delete和update做备份的触发器)代码的存储过程

GO /****** 对象: StoredProcedure [dbo].[pro_GenerateTrigger] 脚本日期: 08/13/2012 10:10:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pro_GenerateTrigger]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[pro_Generat

sql 触发器操作详解

触发器对表进行插入.更新.删除的时候会自动执行的特殊存储过程.触发器一般用在check约束更加复杂的约束上面.触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作.诸如:update.insert.delete这些操作的时候,系统会自动调用执行该表上对应的触发器.SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create.alter.drop语句.   常见的触发器有三种:分别应用于Inse

sqlserver2008触发器-SQL触发器进行更新操作时 用insert添加发生主键冲突

问题描述 SQL触发器进行更新操作时 用insert添加发生主键冲突 环境:SQLserver 2008 创建的表 --库存表(还有多少商品)ID 名称 库存数量 --销售表(卖了多少商品)ID 销售数量 create table StockInfo ( ProID int primary key identity(1,1), ProName nvarchar(20) not null, ProNumber int not null ) go create table SellTab--销售表

Update操作一定是先Delete再Insert吗?

Update在数据库中的执行是怎么样的?"Update操作是先把数据删除,然后再插入数据".在网上看了很多也都是这么认为的.但在查阅到一些不同看法的时候我进行了一些验证,发现还有其它的情况. 这里我分三种情况来讲: 1.更改没有索引列的字段,更改前和更改后的字符串长度一样:2.更改没有索引列的字段,更改后比更改前的字符串长:3.更改聚集索引字段. 一. 创建表.索引和数据: --创建表MyTable1 IF EXISTS(SELECT * FROM sysobjects WHERE [

Sql 触发器

        触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约束.          触发器在数据库里以独立的对象存储,与存储过程不同的是,存储过程通过其他程序来启动运行,而触发器是由一个事件来启动运行.即当某个事件发生时,触发器自动地隐式运行.并且,触发器不能接收参数.         触发器对象定义了触发器的特征和被调用时采取的行动.而这些动作是通过一个或多个SQL语句来实现的.SQL支持