当前位置: 首页 > news >正文

事务,索引和视图

 


>[1]事务

use studb
go
if exists (select * from sysobjects where name = 'bank')
drop table bank
go
create table bank
(
   customername  char(10),
   currentmoney  money
)
go
alter table bank
   add constraint ck_currentmoney check (currentmoney>=1)
go
insert into bank (customername,currentmoney) values ('张三',1000)
insert into bank (customername,currentmoney) values ('李四',1)
select * from bank
go

事务的属性
1. 原子性
2. 一致性
3. 隔离性
4. 持久性

开始事务:begin transaction
提交事务:commit transaction
回滚事务:rollback transaction

use studb
go
update bank set currentmoney = currentmoney - 1000 where customername = '李四'
set nocount on  -----不显示受影响的行数信息
print '查看转帐事务前的余额'
select * from bank
go
begin transaction
declare @errorsum int
set @errorsum = 0
update bank set currentmoney = currentmoney - 1000
where customername = '张三'
set @errorsum = @errorsum + @@error  -----累计是否有错误
update bank set currentmoney = currentmoney + 1000
set @errorsum = @errorsum + @@error
print '查看转帐事务过程中的余额'
select * from bank
if @errorsum<>0
  begin
    print '交易失败,回滚事务' 
    rollback transaction
  end 
else
  begin
    print '交易成功,提交事务,写入硬盘,永久的保存' 
    commit transaction
  end
go
print '查看转帐事务后的余额'
select * from bank
go


…………………………………………………………………………………………………………………………

……………


>[2]索引

use studb
go
if exists (select name from sysindexes where name = 'ix_stumarks_writtenexam')
drop index stumarks.ix_stumarks_writtenexam
create
 nonclustered index ix_stumarks_writtenexam
on stumarks(writtenexam)
with fillfactor = 30
go

select * from stumarks(index = ix_stumarks_writtenexam)
where writtenexam between 60 and 90


…………………………………………………………………………………………………………………………

……………


>[3]视图

use studb
go
if exists (select * from sysobjects where name = 'view_stuinfo_stumarks')
drop view view_stuinfo_stumarks
go
create view view_stuinfo_stumarks
as
  select 姓名 = stuname,学号 = stuinfo.stuno,笔试成绩 = writtenexam,机试成绩 = labexam,平均

分 = (writtenexam+labexam)/2
  from stuinfo left join stumarks on stuinfo.stuno = stumarks.stuno
go
select * from view_stuinfo_stumarks

转载于:https://www.cnblogs.com/tygwy/archive/2010/04/17/1714373.html

相关文章:

  • 2010.4.25 OA项目组一周工作报告
  • VS2008中Web Reference和Service Reference的区别
  • PHP的开源项目汇总
  • 【转】安装虚拟机VMware及在VMware下安装Ghost XP系统图文教程(附PQ分区及VMwa
  • 脱aspack的壳
  • 02.对象静态域的初始化
  • .dwp和.webpart的区别
  • Silverlight 4 tools
  • 预告5月28号:Autodesk MapGuide Enterprise 2011 API 新功能培训
  • [日志]中国人对丈夫的称呼大全
  • 数据恢复书名狂想曲
  • LAMP架设
  • 男孩(女孩),你站起来
  • Teach Yourself Drupal in 24 Minutes –Minute10 使用Polls, Comments,Discussions, Feed Aggregators
  • nandflash分两个fat32分区遇到的问题
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • AHK 中 = 和 == 等比较运算符的用法
  • Hibernate最全面试题
  • javascript 哈希表
  • Java基本数据类型之Number
  • Protobuf3语言指南
  • rc-form之最单纯情况
  • 对JS继承的一点思考
  • 翻译:Hystrix - How To Use
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 你不可错过的前端面试题(一)
  • 前端js -- this指向总结。
  • 使用agvtool更改app version/build
  • 温故知新之javascript面向对象
  • 用Canvas画一棵二叉树
  • python最赚钱的4个方向,你最心动的是哪个?
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • #NOIP 2014# day.2 T2 寻找道路
  • #pragma multi_compile #pragma shader_feature
  • (06)Hive——正则表达式
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net core控制台应用程序初识
  • .NET Framework .NET Core与 .NET 的区别
  • .NET的数据绑定
  • /etc/motd and /etc/issue
  • @RequestMapping用法详解
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [22]. 括号生成
  • [android] 看博客学习hashCode()和equals()
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强
  • [C#]使用PaddleInference图片旋转四种角度检测
  • [C/C++]关于C++11中的std::move和std::forward
  • [FROM COM张]如何解决Nios II SBTE中出现的undefined reference to `xxx'警告
  • [JavaScript]如何讓IE9, IE8, IE7, IE6關閉視窗時不彈出對話訊息