zoukankan      html  css  js  c++  java
  • sql2005数据库复习----事务、视图、触发器

    use master
    go
    if db_id('Student') is not null
    drop database Student
    go
    create database Student
    go
    use Student
    go
    create table UserInfo
    (
    userId int not null primary key identity,
    userName varchar(20) ,
    )
    go
    create table Class
    (
    userName varchar(12) not null
    )
    go

    create table UserMoney
    (
    moneyId int not null primary key identity,
    [money] int
    )
    go

    insert into UserMoney values(200)
    insert into UserMoney values(300)
    insert into UserMoney values(400)
    insert into UserMoney values(500)
    insert into UserMoney values(600)
    insert into UserMoney values(700)
    insert into UserMoney values(800)

    insert into Class values('C101')
    insert into Class values('C102')
    insert into Class values('C103')
    insert into Class values('C104')
    insert into Class values('C105')

    insert into userInfo values('liujie1')
    insert into userInfo values('liujie2')
    insert into userInfo values('liujie3')
    insert into userInfo values('liujie4')
    insert into userInfo values('liujie5')
    insert into userInfo values('liujie6')
    insert into userInfo values('liujie7')
    insert into userInfo values('liujie8')
    insert into userInfo values('liujie9')

    select * from UserInfo

    --创建索引
    --判断索引是否存在
    if exists (select 1 from sys.indexes where name='IX_UserId')
    drop index IX_UserId on UserInfo--删除首页索引
    go
    --创建索引
    create Index IX_UserId on UserInfo(userId)
    go

    --使用索引
    select * from UserInfo with (index = IX_UserId)

    --创建视图
    --判断视图是否存在
    if OBJECT_ID('v_UserInfo') is not null
    drop view v_UserInfo--删除视图
    go
    --开始创建视图
    create view v_UserInfo
    as
    select * from UserInfo
    go
    --查询视图
    select * from v_UserInfo
    go

    --修改视图
    alter view v_UserInfo
    as
    select * from Class
    go

    --查询视图
    select * from v_UserInfo
    go

    --事务的定义。系统在执行并发操作时,最小的执行单元
    --创建事务

    begin transaction;
    insert into UserInfo values('chaomong');
    commit transaction--提交事务

    select * from UserInfo
    begin transaction
    delete UserInfo where userName = 'chaomong'
    rollback tran--回滚事务

    --创建触发器for
    if OBJECT_ID('tr_userMoney') is not null
    drop trigger tr_userMoney
    go
    create trigger tr_userMoney
    on UserMoney for insert
    as
    begin
    print '添加';
    end

    insert into UserMoney values('101')

    --添加触发器 instead of
    if OBJECT_ID('tr_userMoney_1') is not null
    drop trigger tr_userMoney_1
    go
    create trigger tr_userMoney_1
    on UserMoney instead of insert
    as
    begin
    print '添加_1';
    end

    insert into UserMoney values('102')

    select * from UserMoney

    --创建触发器for
    if OBJECT_ID('tr_userMoney_2') is not null
    drop trigger tr_userMoney_2
    go
    create trigger tr_userMoney_2
    on UserMoney for Update
    as
    begin
    begin transaction
    select * from inserted
    select * from deleted
    commit tran
    end

    update UserMoney set money = money +1 where moneyId = 8

    select * from UserMoney

  • 相关阅读:
    使用 v-cloak 防止页面加载时出现 vuejs 的变量名
    Jackson 解析json数据之忽略解析字段注解@JsonIgnoreProperties
    java.lang.IllegalStateException: Cannot run without an instance id.
    沪牌-上海牌照-拍牌经验分享: 我是如何三次拍中的?
    沪牌学院-沪拍拍课堂4: 实拍前的演练
    沪牌学院-沪拍拍课堂3: 网络优化
    沪牌学院-沪拍拍课堂2: 出价策略
    沪牌学院-沪拍拍课堂1: 估价策略
    如何将 DVD 转成 ISO
    雅虎天气-城市代码列表
  • 原文地址:https://www.cnblogs.com/liujie1111/p/3593286.html
Copyright © 2011-2022 走看看