SQL server 事务,索引,视图

--事务,索引,视图


--创建bank数据库
if exists(select * from sysdatabases where name='bank')
drop database bank
create database bank
on(
	name='bankmdf',
	filename='d:\SQL2008Workspace\bank.mdf',
	size=3mb,
	maxsize=5mb,
	filegrowth=1mb
)
log on
(
	name='bankldf',
	filename='d:\SQL2008Workspace\bank.ldf',
	size=3mb,
	maxsize=5mb,
	filegrowth=1mb
)
go

--创建users表
if exists(select * from sysobjects where name='users')
drop table users
create table users
(
	uName nvarchar(20),--用户名
	uMoney money,--账户金额
)
go
--添加约束
alter table users 
add constraint CK_uMoney check(uMoney>=1)
go
--插入数据
insert into users values ('鸣人',1000)
insert into users values ('佐助',2)
go


/*
事务(Transaction)是不可分割的工作逻辑单元,将单元内的语句(操作)作为一个整体向系统提交,
要么都执行,要么都不执行,非黑即白!

*/
--鸣人向佐助转账800
begin transaction--开始事务

print '转账前'
select * from users

declare @error int
set @error=0
update users set uMoney=uMoney-800 where uName='鸣人'
set @error=@@ERROR+@error
update users set uMoney=uMoney+800 where uName='佐助'
set @error=@@ERROR+@error

print '转账中'
select * from users

if @error<>0
	begin
		print '转账失败,回滚事务'
		rollback transaction--回滚事务
	end
else
	begin
		print '转账成功,提交事务'
		commit transaction--提交事务
	end	
	
print '转账后'
select * from users
go



---创建索引
if exists(select * from sysindexes where name='index_uName')
drop index users.index_uName
--创建聚集索引,填充因子为30
create clustered index index_uName
on users(uName)
with fillfactor=30
go
--按索引index_uName进行查询
select * from users with (index=index_uName)
where uName='佐助'
go


/*
视图是一张虚拟表,不能修改,删除,增加数据,只是以表的形式显示原始表的查询结果
视图相当于java中的封装方法,需要的时候直接调用,无需再写T-SQL语句
*/
--检查是否存在该视图
if exists(select * from sysobjects where name='view_users')
--删除视图
drop view view_users
go
--创建视图
create view view_users
as select uName from users
go
--使用视图
select * from view_users	

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值