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

        

     

        

      

  • 相关阅读:
    4、Java基本数据类型
    3、Java 对象和类
    2、Java 基础语法标识符、修饰符、变量、 数组、枚举、关键字
    1、Java 开发环境配置
    近期目标
    Java泛型是什么?实战demo
    Java高级篇XML和正则表达式
    Java高级篇反射和注解
    Java高级篇 JVM
    JavaScript执行顺序
  • 原文地址:https://www.cnblogs.com/gered/p/10668812.html
Copyright © 2011-2022 走看看