zoukankan      html  css  js  c++  java
  • (4.29)sql server中有关于GO的坑

    本问题基于上海sql server dba技术群提问分析总结而成:

    群友问题:  

      就是一台服务器有数据库A,但没有数据库B(A和B有相同得表),我把B数据库的建表语句执行了在use A环境下了,为什么A数据库会被修改呢?

    建表语句如下:

      

    过程分析:

      【1】首先,之前在运行脚本的时候,数据库选择的肯定是use A

      【2】 然后当use b的时候,会报错,因为有GO做提交,GO与GO之间的文本互不影响,所以图中的use B会报错找不到数据库,但是随后接了GO

      【3】 所以并没有切换到B(仍在use A环境下运行),又因为有GO,所以MSSQL会忽略use B该报错(只会回滚本条信息),继续运行文本后续内容。 

    模拟测试:

      所以当test1不存在时,后续的select 3依然运行再test库环境下!

      

    原理演示剖析:

    【1】 当没有GO的时候

        

      结果: 如果某一行报错,那么该行及该后面所有语句都不会执行了

        

       

     【2】当有GO的时候

        

       结果: 加了GO之后,即使中间行报错,后面的行还是会执行 

        

     

        

      

  • 相关阅读:
    解析URL
    文件上传
    MyEclipse自动生成hibernate实体类和配置文件攻略
    <form>表单提交时注意
    W2UI /W2Toolbar的click响应事件
    JS 读写文件
    select 美化(bootstrap)
    安装MySQL for Windows 数据库
    java环境配置—配置Tomcat8环境
    对进程、线程、应用程序域的理解
  • 原文地址:https://www.cnblogs.com/gered/p/10668812.html
Copyright © 2011-2022 走看看