• SQL高级应用


    1、游标的使用
    Selectdelete updateinsert into 表 selct*from

    定义游标,让游标指向sql查询的结果
    declare demoCursor Cursor for select 列名1,列名2,列名3 from 表名
    open demoCursor
    declare @UserName nvarchar(32)
    declare @UserId int
    declare @UserAge int

    fetch next from demoCursor into
    @UserName,
    @UserName,
    @UserName


    close demoCursor
    deallocate domeCursor--释放游标

    2、视图
    把一个查询结果作为虚拟表 提供给开发人员使用

    create View VW_UserInfo as
    select *from UserInfo where UserAge>40

    视图的使用:
    select*from VW_UserInfo 视图可以直接当表用

    3、临时表

    用#修饰临时表
    crete table #testTb
    (
    Id int identity(1,1) primary key not null,
    Name nvarchar(32) null

    )
    --临时表的使用和普通表一样。
    select*from #TestTb

    --临时表用完之后一定要:释放掉临时表
    drop table #TestTb

    临时表的用法:
    select *into #Tb from Userinfo
    select *from #Tb
    drop table #Tb

    临时表多用于高并发的情况的优化

    数据库:锁概念
    锁的级别:X:排它锁 S:共享锁

    insert update delete 会在表上加 X
    select 在表上添加 S锁。

    多表连接:
    select * from Employee as E
    left join Position as P on E.PositionId = p.PositionId7

    4、 sql异常处理
    begin try
    sql…
    end try
    begin catch
    sql
    end catch


    5、事务

    begin transaction 开启事务

    conmit transaction 提交事务

    rollback transaction 回滚事务

    事务AdoNet实现:
    SqlTransaction trans = conn.BeginTransaction();
    注意:cmd.Transaction = trans;应该将事务对象初始化命令。

    6、系统存储过程
    exec sp_databases
    exec sp_tables
    exec sp_columns 'UserInfo'

    动态执行SQL脚本:

    declare @strSql nvarchar(max)
    set @strSql ='select * from UserInfo'
    exec (@strSql)

  • 相关阅读:
    Vue模板
    一个人的旅行
    o2o家庭助手demo
    学习html5 app项目开发
    我最近的一段时间技术总结
    我最近的工作、生活状态
    swift学习初步(四)-- 函数
    swift学习初步(三)--控制流操作
    swift学习(二)--基本运算符、字符串、集合操作
    Swift学习初步(一)
  • 原文地址:https://www.cnblogs.com/Mr-Prince/p/12219577.html
Copyright © 2020-2023  润新知