1.                                              事务
    1、什么是事务
    事务是一个不可分割的工作逻辑单元,它包含了一组数据库的操作命令,并且所有命令作为一个整体一起向系统提交或撤销操作请求,即要么都执行,要么都不执行
      2、事务的4个属性
    (1)、原子性(Atomicity):事务是一个完整的操作,事务个元素不可分
    (2)、一致性(Consistency):当事务完成时,数据必须处于一致状态
    (3)、隔离性(Isolation):对数据进行修改的所有并发事务时彼此隔离的,这表明事务必须时独立的,它不应该以任何方式依赖于或影响其他事务
    (4)、持久性(Durability):事务完成后,它对于系统的影响是永久性的
    3、创建事务的语法:
    --开始事务--
    begin transaction
    --定义变量,累计事务执行过程中的错误--
    declare @errorSum int
    set @errorSum=0 --初始化为0,即无错误
    --增删改操作---
    set @errorSum = @errorSum +@@error --累计是否有错误
    ........ --根据是否有错误,确定事务是提交还是撤销--
    if(@errorSum=0)
    commit transaction --提交事务
    else
    rollback transaction --撤销事务 注意:变量@errorSum只对增删改进行操作,查询并不需要  4、什么时候使用事务
    当一个操作由多个增删改组成的时候,则应用事务 索引 1、什么是索引
    它是SQL Server编排数据的内部方法,为SQL Server提供一种方法来编排查询数据的路径,相当于字典里的目录
    2、索引的分类
    (1)、唯一索引:唯一索引不允许两行具有相同的索引值
    (2)、主键索引:在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型
    (3)、聚集索引: 表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能由一个
    (4)、非聚集索引:非聚集索引指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。可以是多个,小于249个
    3、创建索引
    语法:
    create [unique] [clustered | nonclustered] index index_name
    on table_name (column_name[,column_name]....)
    [
    fillfactor=x
    ] unique指定唯一索引,可选
    clustered、nonclustered指定是聚集索引还是非聚集索引,可选
    fillfactor表示填充因子,指定一个0~100的值,该值指示索引页填满的空间所占的百分比 示例:
    use stuDB
    go
    /*--检测是否存在该索引(索引存放在系统表sysindexes中)--*/
    if exists(select name from sysindexes
    where name='ix_stumarks_writtenexam')
    drop index stumarks.ix_stumarks_writtenexam --删除索引
    /*--笔试列创建非聚集索引:填充因子为30%--*/
    create nonclustered index ix_stumarks_writtenexam
    on stumarks(writtenexam)
    with fillfactor=30
    go 3、应该创建索引和不应该创建索引
    应该创建索引:
    经常以这个列进行查询
    经常以这个列进行排序
    不应该创建索引:
    表的数据量小时,不应创建(会先查索引页,然后再表)
    当某列的值经常发生变更(修改数据会影响到索引页)
    当该列的值比较单一的情况(比如该列的值为性别 男和女)
    视图
    1、什么是视图
    视图是另一种查看数据库中一个或多个表中的数据的方法,视图是一种虚拟表
    2、语法
    create view view_name
    as <select语句>
    注意:视图可以对表进行增删改查, 但建议不对其使用增删改,多用来进行查询

sqlserver中 事物 索引及视图的更多相关文章

  1. SQLServer中使用索引视图

    在SQL Server中,视图是一个保存的T-SQL查询.视图定义由SQL Server保存,以便它能够用作一个虚拟表来简化查询,并给基表增加另一层安全.但是,它并不占用数据库的任何空间.实际上,在你 ...

  2. sqlserver中的存储过程 函数 事物 索引及视图

                                           存储过程和函数具体的区别: 核心提示:本质上没区别.只是函数有限制只能返回一个标量,而存储过程可以返回多个.并且函数是可以 ...

  3. SQLServer中使用索引视图(物化视图)

    物化视图:以前用的普通的视图,普通视图就是一段逻辑语句,对性能没有任何的提升,也不能创建索引,而物化视图会把视图里查询出来的数据在数据库上建立快照,它和物理表一样,可以创建 索引,主键约束等等,性能会 ...

  4. SQLSERVER中常用的系统视图

    QLServer中提供了相当丰富的系统视图,能够从宏观到微观,从静态到动态反应数据库对象的存储结果.系统性能.系统等待事件等等.同时 也保留了与早期版本兼容性的视图,主要差别在于SQLServer20 ...

  5. Sqlserver中的索引

    一.什么是索引及索引的优缺点 1.1  索引的基本概念 数据库索引,是数据库管理系统中一个排序的数据结构,用来协助快速查询数据库表中数据. 简单理解索引就是一个排好顺序的目录,设置了索引就意味着进行了 ...

  6. SqlServer中查看索引的使用情况

    --查看数据库索引的使用情况 select db_name(database_id) as N'TOPK_TO_DEV', --库名 object_name(a.object_id) as N'Top ...

  7. MySql SqlServer Sqlite中关于索引的创建

    最近要更新Cocon90.Db库,令其ORM创建表时实现索引的添加.因此总结下列常用Sql,供大家学习与参考. 一.SqlServer中创建索引可以这样: ) Create Table Test ( ...

  8. SqlServer中Index Seek的匹配规则(一)

    我们知道在SqlServer中,索引对查询语句的优化起着巨大的作用,一般来说在执行计划中出现了Index Seek的步骤,我们就认为索引命中了.但是Index Seek中有两个部分是值得我们注意的,我 ...

  9. SQLServer中在视图上使用索引(转载)

    在SQL Server中,视图是一个保存的T-SQL查询.视图定义由SQL Server保存,以便它能够用作一个虚拟表来简化查询,并给基表增加另一层安全.但是,它并不占用数据库的任何空间.实际上,在你 ...

随机推荐

  1. Hive的UDF是什么?

    首先我们学习hadoop的时候,为了让我们不太会java语言但是对SQL很熟悉的工程师能够操作基本的mapreduce计算过程,Hive被设计出来了.Hive就好比是hadoop在执行MR(mapre ...

  2. MySQL锁之三:MySQL的共享锁与排它锁编码演示

    一.行锁之MySQL  使用SELECT ... FOR UPDATE 做事务写入前的确认 以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEA ...

  3. 产品使用的前后台框架API-dubbo-redis-elasticsearch-jquery

    前台框架API •jQuery:https://jquery.com/ •jQuery MiniUI:http://www.miniui.com/ •Bootstrap:http://www.boot ...

  4. 关于display:inline-block的文章

    在淘宝UED博客里看到一篇关于display:inline-block的文章,有点啰嗦,反正我没看完,但是里面有些观点还是写得挺好的,直接贴地址mark一下.   文章地址:http://ued.ta ...

  5. python动态绑定属性和方法

    基于Python 2.7.13测试. Python是动态语言,在类定义了之后,还可以动态地绑定属性和方法. 下面先来看怎么给类的实例动态地绑定属性和方法. >>> class Stu ...

  6. c#day04从控制台获取一个字符

    class EnumStruct { //定义QQ的状态枚举 Qme QnLine OffLine Leave Busy //提示用户现在一个状态 然后接收 ,并将用户输入转换成枚举类 enum Qs ...

  7. Ribbon Workbench 与此流程相关的流程操作未激活

    问题描述:使用Ribbon Workbench 打开解决方案时报 :与此流程相关的流程操作未激活 解决方法 :ribbon 导航--系统定置--流程中心--流程--CustomiseRibbon -- ...

  8. 程序集生成失败 -- 引用的程序集“ThoughtWorks.QRCode”没有强名称,为没有源码的程序集强签名

    如果你写的程序程序集是带签名的,应用了没有签名的程序集,编译就会报下面的错误 引用的程序集“**”没有强名称 进入sdk提示符界面,依次输入如下指令 sn -k ThoughtWorks.QRCode ...

  9. U3d学习001-RollBox例子

    1.世界坐标系和局部坐标系(参照物坐标系)——以参照物为父物体节点  2.刚体组件:       获得GetComponent<Rigidbody>();     移动AddForce(n ...

  10. 汽车车牌JS正则表达式验证(含新能源车牌)

    /** * 第一:普通汽车 * 车牌号格式:汉字 + A-Z + 5位A-Z或0-9( 车牌号不存在字母I和O防止和1.0混淆) * (只包括了普通车牌号,教练车,警等车牌号 .部分部队车,新能源不包 ...