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之后,即使中间行报错,后面的行还是会执行 

        

     

        

      

  • 相关阅读:
    spring mvc返回json字符串的方式
    springmvc的数据校验
    Spring MVC拦截器
    HTML5
    再续前缘CSS3
    Spring MVC文件上传和下载
    初始CSS3
    Spring MVC类型转换
    Spring MVC重定向和转发及异常处理
    Spring MVC注解入门
  • 原文地址:https://www.cnblogs.com/gered/p/10668812.html
Copyright © 2011-2022 走看看