sqlserver 触发器实例
实例1:update
USE [数据库名称]
GO
/****** Object: Trigger [dbo].[触发器名称] Script Date: 05/08/2014 12:40:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[T_触发器名称] ON [dbo].[表名称]
FOR UPDATE
AS
DECLARE
@Id VARCHAR(32),
@remain_cost DECIMAL(10,3),
@remain_flow DECIMAL(10,3),
@valid_time DATETIME;
BEGIN
SET XACT_ABORT ON
BEGIN TRANSACTION
--SELECT @Id = customer_no, @remain_cost = Balance,@remain_flow = (MAX_VOLUME - USED_VOLUME) FROM INSERTED;
--insert openrowset('MSDASQL','smysql';'root';'123456','select * from mysql_authon.Consumer ') values(@Id,......)
SELECT @Id = customer_no, @remain_cost = Balance,@remain_flow = (MAX_VOLUME - USED_VOLUME) FROM INSERTED;
-- SET @Id = (SELECT customer_no FROM INSERTED);
-- SET @remain_cost = (SELECT Balance FROM INSERTED);
--SET @remain_flow = (SELECT (MAX_VOLUME - USED_VOLUME) FROM INSERTED);
-- 查询对本地复制
--SET @sql =
-- SET @type = (SELECT * FROM OPENROWSET('MSDASQL','smysql';'root';'123456','SELECT UserType_id FROM .... @Id'))
-- SET @base_cost = (SELECT * FROM OPENROWSET('MSDASQL','smysql';'root';'123456','SELECT Consumer_basecost FROM .... @Id'))
-- DELETE FROM OPENROWSET('MSDASQL','smysql';'root';'123456','select * from ....= @Id ')
-- INSERT openrowset('MSDASQL','smysql';'root';'123456','select * from mysql_authon.Consumer ') values(@Id,@type,.....)
INSERT INTO 表名称 VALUES(@Id,.....);
COMMIT TRANSACTION
END
实例2:insert
USE [数据库名称]
GO
/****** Object: Trigger [dbo].[触发器名称] Script Date: 05/08/2014 12:47:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[触发器名称] ON [dbo].[表名称]
FOR INSERT
AS
DECLARE
@Id VARCHAR(16),
@remain_cost DECIMAL(10,3),
@remain_flow DECIMAL(10,3),
@valid_time DATETIME;
BEGIN
SET XACT_ABORT ON
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
BEGIN TRANSACTION
SELECT @Id = customer_no........ FROM INSERTED;
-- insert openrowset('MSDASQL','smysql';'root';'123456','select * from mysql_authon.Consumer ') values(@Id.....)
-- 将数据插入到插入用户临时表
INSERT INTO dbo.transfer_data_insert_temp2 VALUES(@Id.....);
COMMIT TRANSACTION
-- Insert statements for trigger here
END
实例3 :delete
USE [数据库名称]
GO
/****** Object: Trigger [dbo].[触发器名称] Script Date: 05/08/2014 12:51:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[触发器名称] ON [dbo].[表名称]
FOR DELETE
AS
DECLARE
@Id VARCHAR(16);
BEGIN
SET XACT_ABORT ON
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
BEGIN TRANSACTION
SELECT @Id = customer_no FROM deleted;
-- insert openrowset('MSDASQL','smysql';'root';'123456','select * from mysql_authon.Consumer ') values(@Id,....)
-- 将数据插入到插入用户临时表
INSERT INTO dbo.表名称 VALUES(@Id);
COMMIT TRANSACTION
-- Insert statements for trigger here
END
sqlserver 触发器实例的更多相关文章
- sqlserver 触发器实例代码
定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Insert , Update ...
- SQL触发器实例讲解
SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Inser ...
- SQLServer触发器
触发器的作用: 自动化操作,减少了手动操作以及出错的几率. 触发器是一种特殊类型的存储过程,它不同于前面介绍过的一般的存储过程. [在SQL内部把触发器看做是存储过程但是不能传递参数] 一般的存储过程 ...
- SQL触发器实例
SQL触发器实例讲解(本文是来自百度文库) 备注:本人建了一个站特价汇,我想记录每个商品的点击量,然后按照点击量来牌名商品,想要提高效率,所以必须得用触发器,下面是本人在百度文库中的找到的学习资料,分 ...
- [SQL SERVER系列]存储过程,游标和触发器实例[原创]
自己写的存储过程与游标结合使用的实例,与大家分享,也供自己查阅,仅供参考: --使用游标循环处理,删除重复的记录 declare @UserID int ) ) declare @UnitFlag i ...
- JDBC连接自定义sqlserver数据库实例名(多个实例)
java语言中,通过jdbc访问sqlserver2005(2008)数据库默认实例可以按常用的写法来写url连接.代码如下: <span style="font-size:12px; ...
- SQL触发器实例(下)
基本语法: Create Trigger [TriggerName] ON [TableName] FOR [Insert][,Delete][,Update] AS --触发器要执行的操作语句. G ...
- PL/SQL之存储过程和触发器实例
1.Oracle存储过程实例 /*不带任何参数存储过程(输出系统日期)*/ CREATE OR REPLACE PROCEDURE output_date IS BEGIN DBMS_OUTPUT.P ...
- SqlServer触发器的理解
SqlServer触发器是与表事件相关的特殊存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发.比如当对一个表进行操作( insert,delete, update)时就会激活它执行. ...
随机推荐
- Matplotlib pyplot中title() xlabel() ylabel()无法显示中文(即显示方框乱码)的解决办法
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/11020246.html 一.无法正常显示原因 ...
- 阿里云服务器(Ubuntu16.04 64位)的使用
购买阿里云服务器 1.打开阿里云官方网站,账号登录,选择产品中的云服务器 ECS 2.根据自身需求,选择合适的阿里云服务器系统,(1)点击一键购买,(2)选择地域,(3)根据自身需求,选择系统,这里选 ...
- django操作mysql
连接mysql 1.安装pymysql 操作指令 : pymsql: pip install pymysql 2.导入库 在项目目录下的__init__.py文件中导入pymysql模块 加入以下两行 ...
- c# 类嵌套
- 用js刷剑指offer(数组中出现次数超过一半的数字)
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- web开发常见的鉴权方式
结合网上找的资料整理了一下,以下是web开发中常见的鉴权方法: 预备:一些基本的知识 RBAC(Role-Based Access Control)基于角色的权限访问控制(参考下面①的连接) l ...
- linux网络编程之system v信号量(一)
今天起,学习信号量相关的知识,下面开始: 关于信号量,在前面已经介绍过了,这里回顾一下: 通过上面的描述,很容易就能想到信号量的一上数据结构: 下面再来回顾一下P.V原语: 所谓的原语就是指这段代码是 ...
- 数据库中聚合索引(MySQL和SQL Server区别)
一.聚集索引和非聚集索引 聚集索引:类似字典的拼音目录.表中的数据按照聚集索引的规则来存储的.就像新华字典.整本字典是按照A-Z的顺序来排列.这也是一个表只能有一个聚集索引的原因.因为这个特点,具体索 ...
- vscode 输出面板字符编码问题
默认的输出中文会显示成乱码,需要在vscode内部的终端中输入 chcp 65001 缺点是需要每次打开vscode进行激活,另一种方式是在vscode的首选项中进行配置: "termina ...
- vscode安装依赖报错 TypeError: zipfile.readEntry is not a function
错误原因是npm的版本太高,需要把5.x的版本换回4.x的 npm install npm@4 -g 或者 cnpm install npm@4 -g 详见:https://github.com/Mi ...