MSSQL 事务,视图,索引,存储过程,触发器

事务

事务是一种机制、是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。

在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的。这特别适用于多用户同时操作的数据通信系统。例如:订票、银行、保险公司以及证券交易系统等。

如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库的永久组成部分,如果事务遇到错误且必须取消或回滚,则所有数据修改均会被清除。

开始事务  BEGIN TRANSACTION

提交事务  COMMIT TRANSACTION

回滚事务  ROLLBACK TRANSACTION

--开始事务
begin transaction
declare @errorSum int    --定义变量,用于累计事务执行过程中的错误
--转帐
update bank set currentMoney=currentMoney-800 where customerName=‘张三‘
set @[email protected][email protected]@error  --累计是否有错误
update bank set currentMoney=currentMoney+800 where customerName=‘李四‘
set @[email protected][email protected]@error  --累计是否有错误

print ‘查看转帐事务过程中的余额‘
select * from bank

--根据是否有错误,确定事务是提交还是回滚
if @errorSum>0
    begin
        print ‘交易失败,回滚事务.‘
        rollback transaction
    end
else
    begin
        print ‘交易成功,提交事务,写入硬盘,永久保存!‘
        commit transaction
    end
go

索引

索引提供指向存储在表的指定列中的数据值的指针,然后根据指定的顺序对这些指针排序。

索引使数据库程序无需对整个表进行扫描,就可以在其中找到所需数据。

索引依赖于数据库的表,作为表的一个组成部分,一旦创建后,又数据库系统自身进行维护。

视图

视图和表类似,是一张虚拟表,通常是作为一个或多个表的行或列的子集创建的,视图只供查询,数据不可更改,查询数据来源于我们建立的实体表。

存储过程

存储过程的概念类似于函数,它是SQL语句和控制流语句的预编译集合。

存储过程存储在数据库内,可由应用程序调用。

存储过程的优点显而易见:封装复杂操作,节省编译优化时间,实现代码重用。

CREATE PROC 存储过程名

AS

BEGIN

SET NOCOUNT ON

--SQL语句

END

带有输出参数的存储过程,如果参数后面带有output,则表示此参数为输出参数,否则是普通的输入参数,输入参数可以带有默认值

CREATE PROC 存储过程名

@变量名 数据格式[=默认值] [OUTPUT]

AS

BEGIN

SET NOCOUNT ON

--SQL语句

END

调用存储过程:EXEC  存储过程名 [参数]

--调用后返回通过考试的学生人数,以供其他sql语句调用

CREATE PROCEDURE proc_withOutputpara

@subject varchar(10)=‘SQL‘,  --接受参数,带默认参数,变量之间带逗号

@count int output  --输出参数

AS

SELECT @count=count(*) FROM students S,Mark SC,course C

WHERE S.sID=SC.sID AND SC.cID=C.cID

AND C.cNAME=‘C#‘ AND SC.SCore<60

GO

--调用存储过程

DECLARE @count int,@sub varchar(10)  --声明变量

SET @sub=‘C#‘

EXEC  proc_withOutputpara @sub,@[email protected] output

PRINT @sub+‘考试不及格的共有‘+convert(varchar(2),@count)+‘人‘

GO

触发器

触发器是一种特殊类型的存储过程。

触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。

触发器的主要作用是实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。

CREATE TRIGGER 触发器名称

ON 表名

FOR insert/delete/update

AS

--SQL语句

GO

博客园hoojo博主关于触发器的详细介绍:http://www.cnblogs.com/hoojo/archive/2011/07/20/2111316.html

博主初学,有错还望各位大神指出。

转载请联系

时间: 2024-08-06 20:01:03

MSSQL 事务,视图,索引,存储过程,触发器的相关文章

第五章 MySQL事务,视图,索引,备份和恢复

第五章 MySQL事务,视图,索引,备份和恢复 一.事务 1.什么是事务 事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求.要么都执行,要么都不执行. 事务是作为最小的控制单元来使用的,特别使用与多用户同时操作的数据库系统. 2.为什么需要事务 事务(transaction)是指将一系列数据操作捆绑成为一个整体进行统一管理,如果某一事务执行成功,则在该事务中进行的所有数据均会提交,成为数据库中永久的组成部分.如果事务执行遇到错误且

事务 视图 索引

什么叫做事务? 事务具有如下的特性. 原子性(atomicity)事务是一个完整的操作,事务的各元素是不可分的(原子的). 一致性(consistency)当事务完成时,数据必须处于一致状态. 隔离性(islation)对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,他不应该以任何方式依赖于活影响其他事务. 持久性(durability)事务的持久性是指不管系统是否发生了故障,事务处理的结果都是永久的. 以上的四个特性被称为ACID特性 事务可以分为如下类型. 显示事务用 BE

视图 索引 存储过程

视图——相对应的是表查询结果.表——真正存储数据的地方.视图——不存数据,展示查询的结果. 视图就是为了查询数据方便.一般不要试图向视图中插入数据,容易出错.视图可以由一个表生成,也可以由多个表生成,还可以由表各视图生成新的视图. 掌握:1.视图是个什么东西?2.会建视图,会查视图3.知道视图的主要功能是查询,不是增删除改. 索引:为了提高查询效率.簇索引,非簇索引 1.数据的默认存储次序跟簇索引的次序一样的.一个表中只有能有一个簇索引.2.非簇索引是单独放置的,查询的时候,先查非族索引,再跟据

关于MySQL 事务,视图,索引,数据库备份,恢复

  /*创建数据库*/ CREATE DATABASE `mybank`;/*创建表*/USE mybank;CREATE TABLE `bank`(    `customerName` CHAR(10),        #用户名    `currentMoney` DECIMAL(10,2)         #当前余额);/*插入数据*/INSERT INTO `bank` (`customerName`,`currentMoney`) VALUES ('张三',1000);INSERT IN

事务视图索引备份和恢复

事务 事务必须具备以下四个属性,简称ACID属性 语法 示例 自动关闭和开启事务 视图 为什么需要视图 什么是视图 视图的用途 创建视图 使用视图注意事项 原文地址:https://www.cnblogs.com/xhddbky/p/9231356.html

mysql事务、触发器、视图、存储过程、函数

存储过程: procedure 概念类似于函数,就是把一段代码封装起来, 当要执行这一段代码的时候,可以通过调用该存储过程来实现. 在封装的语句体里面,可以用if/else, case,while等控制结构. 可以进行sql编程. 查看现有的存储过程: Show procedure status 删除存储过程 Drop procedure 存储过程的名字 调用存储过程 Call 存储过程名字(); 第1个存储过程 ,体会"封装sql" 第2个存储过程, 体会"参数"

查询SQLServer2005中某个数据库中的表结构、索引、视图、存储过程、触发器以及自定义函数

查询SQLServer2005中某个数据库中的表结构.索引.视图.存储过程.触发器以及自定义函数 2013-03-11 09:05:06|  分类: SQL SERVER|举报|字号 订阅 (1)查询SQLServer2005中某个数据库中的表结构 SELECT TOP 100 PERCENT --a.id,CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名,CASE WHEN a.colorder = 1 THEN isnull(f.v

数据库理论之视图、事务、索引、优化查询

数据库理论之视图.事务.索引.优化查询 一.视图 灵魂三问 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果要频繁的使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view 视图名 as sql语句 注意:创建出来的视图只有表结构,数据来源还是原来的表 视图通常都是用于查询,所以尽量不要修改视图中的数据 思考:开发过程中应不应该使用视图? 不应该 二.触发器 命名规则及理论 在满足对某张表数据的增删改的情况下,自动触发的功

函数,事务,索引,存储过程

重点,事务,索引: --常见的安全问题: sql注入:用户输入不合法 通过攻击服务器的安全漏洞窃取数据库 一种常见的方式 在黑市上可以买到数据库信息 装库,利用从别处叨叨的用户名和密码,尝试在另外一个站点上登录,从而得到更多 信息 安全建议: 1.对数据库设计的建议:在表中存储加密后的密码数据,常见加密方式 :md5,sha1 2.对网站程序员的建议:登录时添加验证码 3.对普通用户的建议:在多个站点间使用不同的密码 oauth:授权登录,微信,微博,新浪 函数: ? functions;  查

T-SQL应用,视图、存储过程、触发器、游标、临时表等

sqlserver常用操作: 视图.存储过程.触发器.函数 --*********************批处理********************* --[在一个批处理中存有一个语法错误,则所有的语句都无法通过编译] USE flowershopdb SELECT * FROM tb_category SELECT * FROM tb_detailed SELECT * FROM tb_product SELECT * FROM tb_shopping SELECT * FROM tb_u