sql server中的go
1. 作用:
向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号.
2. 语法:
一批 Transact-SQL 语句
GO
如
Select 1
Select 2
Select 3
GO
3. 说明:
1) GO 不是 Transact-SQL 语句;
2) 它是 sqlcmd 和 osql 实用工具以及 SQL Server Management Studio 代码编辑器识别的命令.
3) SQL Server 应用程序可以将多个 Transact-SQL 语句作为一个批发送到 SQL Server 的实例来执行.然后,该批中的语句被编译成一个执行计划.程序员在 SQL Server 实用工具中执行特殊语句,或生成 Transact-SQL 语句的脚本在 SQL Server 实用工具中运行时,使用 GO 作为批结束的信号.
4) 如果基于 ODBC 或 OLE DB API 的应用程序试图执行 GO 命令,会收到语法错误.SQL Server 实用工具从不向服务器发送 GO 命令.
4. 权限:
GO 是一个不需任何权限的实用工具命令.它可以由任何用户执行.
5. 用法:
1) SQL Server 实用工具将 GO 解释为应该向 SQL Server 实例发送当前批 Transact-SQL 语句的信号.当前批语句由上一 GO 命令后输入的所有语句组成,如果是第一条 GO 命令,则由即席会话或脚本开始后输入的所有语句组成.
SQL Server中go语句使用注意事项
1、GO 命令和 Transact-SQL 语句不能在同一行中.但在 GO 命令行中可包含注释
Select 1
GO
--会正确输出结果,列名为”无列名”
Select 1 GO
--会正确输出结果,列名为”GO”
--由此可知此处的GO并未起到应有的作用;
2、用户必须遵照使用批处理的规则.例如,在同一批处理中,创建数据库之后不能直接使用其新建的数据库
create database [Roc]
use [Roc]
GO
--运行此批处理后,系统会报错
--把此批处理分成两个批即可正确运行
create database [Roc]
GO
use [Roc]
GO
3、局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用
declare @Roc varchar(max)
Select @Roc = 'aking'
GO
print @Roc
GO
--此为两个批处理,由于局部变量的作用域要限制在一个批处理中,所以此语句错误
--把这两个批合并为一个批即可正确运行
declare @Roc varchar(max)
Select @Roc = 'aking'
print @Roc
GO
4、每个被GO分隔的语句都是一个单独的事务,一个语句执行失败不会影响其它语句执行
select * from sysobjects where id=a
select getdate()
--你会发现会报错,并且不会显示任何结果集
select * from sysobjects where id=a
go
select getdate()
go
--你会发现尽管同样会报错,但结果集中包含select getdate()的结果。
5、GO [count] count 为正整数.指定GO 之前的批处理执行指定的次数
insert [Roc] Select 'aking'
GO
--批处理执行1次,向表Roc中插入一行记录
aking Insert [Roc] Select 'aking'
GO 10
--批处理执行10次,向表Roc中插入10行记录aking
转载于:https://www.cnblogs.com/Ting-light/p/9541279.html
sql server中的go相关推荐
- SQL Server中Identity标识列
SQL Server中,经常会用到Identity标识列,这种自增长的字段操作起来的确是比较方便.但它有时还会带来一些麻烦. SQL Server中,经常会用到Identity标识列,这种自增长的字段 ...
- predicate 列存储索引扫描_在SQL SERVER中导致索引查找变成索引扫描的问题分析
SQL Server 中什么情况会导致其执行计划从索引查找(Index Seek)变成索引扫描(Index Scan)呢? 下面从几个方面结合上下文具体场景做了下测试.总结.归纳. 1:隐式转换会导致 ...
- mysql2008 limit,在SQL Server中实现 Limit m, n 的功能
在SQL Server中实现 Limit m, n 的功能 (2012-03-14 18:17:43) 标签: 杂谈 在MySQL中,可以用 Limit 来查询第 m 列到第 n列的记录,例如: se ...
- SQL Server中SELECT会真的阻塞SELECT吗?
在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.T ...
- 将Session值储存于SQL Server中
一般情况下,我们喜欢使用Session储存我们的变量.Asp.Net提供了下面一些方法储存Session的值: InProc State Server SQL Server "InProc& ...
- 在SQL Server中保存和输出任意类型的文件
我们可以把任意类型的文件保存到SQL Server中,在进行例子之前,先建立测试用表格,TestFile.sql: if exists (select * from dbo.sysobjects wh ...
- SQL SERVER中什么情况会导致索引查找变成索引扫描
原文:SQL SERVER中什么情况会导致索引查找变成索引扫描 SQL Server 中什么情况会导致其执行计划从索引查找(Index Seek)变成索引扫描(Index Scan)呢? 下面从几个方 ...
- SQL Server中读取XML文件的简单做法
SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦.本文介绍在SQL Server中读取XML文件的简单做法. ...
- SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因...
原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...
- SQL Server中自定义函数和游标应用的经典案例
2019独角兽企业重金招聘Python工程师标准>>> SQL Server中自定义函数和游标应用的经典案例 转载于:https://my.oschina.net/zhddzr/bl ...
最新文章
- Codeforces Educational round 58
- Ubuntu14下搭建Web服务器
- 《系统集成项目管理工程师》必背100个知识点-28范围管理计划和需求管理计划...
- 小程序开发(7)-之获取手机号、用户信息
- C#中通过WMI的Win32_DiskDrive对象获取磁盘驱动器信息简介
- (17)System Verilog枚举类型enum详解
- idea 快速导入实现父类方法_网站seo优化方法,实现快速排名!
- Exchange 2016 体系结构
- 【ArcGIS|空间分析】微博签到数据分析(全国大学生GIS技能大赛试题)
- mysql存储引擎分类
- MATLAB机器学习系列-10:遗传算法原理及其matlab遗传算法工具箱使用
- [国家集训队]middle——中位数思维题
- HDFS Rack Awareness详解
- 3. 天线设计理论 - 什么是带宽
- 百家讲坛之易中天品三国MP3全集
- SGE集群系统了解与常用操作命令
- Arduino and the SPI bus
- 四、四相节拍脉冲发生器、带启停电路的时序电路(含电路图)
- Python:实现非极大值抑制
- SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事
热门文章
- 笔记:Java虚拟机运行时数据区
- Library not loaded: @rpath/libswiftCore.dylib
- UVA - 11732 strcmp() Anyone?左兄弟右儿子trie
- 【开源项目之路】jquery的build问题
- ListView几个比较特殊的属性
- [导入]Ms XmlDom 异步装载Xml文件
- keepalived mysql双主架构图_基于keepalived Mysql双主热备配置
- html 手写字效果,canvas画布实现手写签名效果的示例代码
- 虚拟化运维工具医院解决方案
- 电脑计算机网络由基础到深入常用知识集锦!