`

sqlserver中go

    博客分类:
  • sql
 
阅读更多

go 是SYBASE和SQL Server中用来表示事物结束,提交并确认结果,相当于ORACLE的Commit

SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。

局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。

 

GO代表一个批处理的结束;
你可以把每个GO之间的语句当成是一句SQL;
GO不是标准的语法,只是查询分析器为了区分多个批处理而设的分隔符而已;

 

具体的如下

  1. CREATE TABLE TableName  
  2. (  
  3.   ColumnName1 DataType,  
  4.   ColumnName2 DataType  
  5. )  
  6. GO  
  7.  
  8. INSERT INTO TableName(ColumnName1,ColumnName2)  
  9. VALUES (Value1,Value2)  
  10. GO 

在解析和执行的时候这一篇T-SQL脚本其实是被认为是两个独立的部分,只不过他们使用同一个Session

举一个最有说服力的例子

  1. DECLARE @Parameter1 INT 
  2. DECLARE @Parameter2 INT 
  3.  
  4. -- If insert "GO" to there...   
  5. -- "GO"  
  6. -- Result:  
  7. -- Msg 137, Level 15, State 1, Line 1  
  8. -- Must declare the scalar variable "@Parameter1".  
  9. -- Msg 137, Level 15, State 1, Line 2  
  10. -- Must declare the scalar variable "@Parameter2".  
  11. -- Msg 137, Level 15, State 2, Line 4  
  12. -- Must declare the scalar variable "@Parameter1".  
  13. SET @Parameter1 = 1  
  14. SET @Parameter2 = 2  
  15.  
  16. PRINT @Parameter1 + @Parameter2  
  17. GO  
  18. -- Result: 3 

当你在使用的变量以前插入了一个GO,这个GO之前脚本会作为一个提交部分,而这个GO以后的部分会作为第二个部分进行提交

P.S. 这里说的提交仅是提交SQL代码,不会提交"GO"这个关键字

我们还需要留意以下特殊注意事项:

1 与GO同一行,GO前边不能包含任何SQL

2 与GO同一行,GO后边可以跟 -- 注释,但是不能跟 /**/ 注释!

这个问题情况大家都不会这样写,所以遇到的几率很小,但是有一个原因引发第1个问题的情况值得大家注意×SQL脚本的文本格式,最好编码完成后检查一下文本格式选择UTF,否则可能你看到自己是换行了,但是在SQL解析的时候会认为他们在同一行,这样的情况当你越检查越会觉得SQL写得很对,但是... ... 但是它始终告诉你语法错误... ... 一定小心... ... 昨天我就傻傻的在那里调了一天... ... 彻底的郁闷了... ... 呵呵

下边再说一个GO的特性,但是我们大家都不常用,或者说我们由于GO太常见而忽略掉了它的这个重要的特性,就是 -- GO是可以代替我们做重复操作的!!

  1. -- INSERT TABLE TableName(Column1, Column2)  
  2. -- VALUES (Value1, Value2)  
  3. -- GO [Number] 这里的Number必须是正整数!  
  4.  
  5. INSERT TABLE TableName(Column1, Column2)  
  6. VALUES (Value1, Value2)  
  7. GO 100  
  8. -- 在这里我们会看到GO加了100次重复操作,  
  9. -- 同时在SSMS窗口智能感知的时候会用红线告诉我们语法不对  
  10. -- 但是请放心执行,他100%能通过,同时必定为你运行100次
分享到:
评论

相关推荐

    [SQL Server] Microsoft SQL Server 2012 技术内幕 (英文版)

    [Microsoft Press] Microsoft SQL Server 2012 技术内幕 (英文版) [Microsoft Press] Microsoft SQL Server 2012 Internals (E-Book) ☆ 图书概要:☆ Dive deep inside the architecture of SQL Server 2012 ...

    Go connect SQLServer

    Golang 连接 SQLServer https://github.com/LukeMauldin/lodbc

    如何强制删除或恢复SQLServer正在使用的数据库

    通常情况睛,SQLServer... 您可能感兴趣的文章:sqlserver只有MDF文件恢复数据库的方法sqlserver 数据库日志备份和恢复步骤asp 在线备份与恢复sqlserver数据库的代码SQLserver 数据库危险存储过程删除与恢复方法SQL Serv

    SQL Server 异地备份到远程共享文件夹异常处理

    说明通过SQL SERVER访问远程地址出现异常,虽然本地系统已经可访问该共享文件夹 解决方案: 1、解锁 SQL SERVER “xp_cmdshell”命令 打开SQL SERVER 新建查询窗口 -- 允许配置高级选项 EXEC sp_configure 'show ...

    sqlserver卸载清除工具.zip

    (10)重新启动系统,SQL卸载干净,就可以重新安装sqlserver了。 好文要顶 关注我 收藏该文 标题: SQL Server 安装程序失败。 ------------------------------ SQL Server 安装程序遇到以下错误: ...

    使用PowerDesigner设计SQL Server数据库

    使用PowerDesigner设计SQL Server数据库

    Data Science with SQL Server

    (RDBMS), and one of the most widely used RDBMS is Microsoft SQL Server. Much more than a database server, it’s a rich ecostructure with advanced analytic capabilities. Microsoft SQL Server R Services...

    Microsoft SQL Server 2005 Express Edition SP3

    未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL ...

    go语言通过odbc访问Sql Server数据库的方法

    主要介绍了go语言通过odbc访问Sql Server数据库的方法,实例分析了Go语言通过odbc连接与查SQL Server询数据库的技巧,需要的朋友可以参考下

    SQLSERVER 中GO的作用详解

    主要介绍了SQLSERVER 中GO的作用详解的相关资料,需要的朋友可以参考下

    SQL Server 阻止了对组件 'Ad Hoc Distributed Queries'

    SQL Server 阻止了对组件 'Ad Hoc Distributed Queries'2009年08月28日 星期五 15:00SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此...

    SQL Server查找表名或列名中包含空格的表和列实例代码

    本文主要给大家介绍的是关于SQL Server查找包含空格的表和列的相关内容,为什么会有这篇文章,是因为最近发现一个数据库中的某个表有个字段名后面包含了一个空格,这个空格引起了一些小问题,一般出现这种情况,是...

    Go-GoSqlServer数据库驱动程序

    gofreetds Microsoft MSSQL 驱动器。Go 基于FreeTDS封装

    Professional Microsoft SQL Server 2016 Reporting Services and Mobile Reports 代码

    Professional Microsoft SQL Server 2016 Reporting Services and Mobile Reports provides a comprehensive lesson in business intelligence (BI), operational reporting and Reporting Services architecture ...

    Beginning T-SQL with Microsoft SQL Server 2005 and 2008

    The SQL Server client tools must be installed on your desktop computer and the SQL Server relational database server must be installed on either your desktop computer or on a remote server with ...

    SQL Server with C#

    SQL Server with C# Klaus Elk (Author) Paperback: 146 pages 出版社: CreateSpace Independent Publishing Platform (July 5, 2018) Language: English ISBN-10: 1720358672 ISBN-13: 9781720358671 Contents 1 ...

    sql server中增加约束的语句、各种语句

    将之前所删除的会计部门数据库加载只sql server 中 EXEC sp_attach_db @dbname='会计部门',@filename1='c:\mssql\data\会计部门.mdf' go 2.sp_rename 重命名数据库 EXEC sp_rename '会计部门','业务部门' 3....

    java(myeclipse10)连接数据库sqlserver2008的实例

    在sqlserver 2008中创建名为 yanwen 数据库 建一张user表 代码如下 INSERT INTO [yanwen].[dbo].[users] ([name] ,[password] ,[age]) VALUES ('cyw' ,'123456' ,20) GO select * from users; 接着运行...

    sqlserver自定义函数

    打开测试数据库test,并以表w01为例,将下面的SQL语句放入sql2000查询分析器中,一段一段执行即可看到效果 ---在sql2000下创建测试数据表 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo]....

Global site tag (gtag.js) - Google Analytics