未加星标

GO Statement in Sql Server

字体大小 | |
[数据库(mssql) 所属分类 数据库(mssql) | 发布者 店小二05 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏

GO statement is used as a Batch separator in Sql Server. Batch is nothing but one or more Sql Server statements sent to the Sql Server engine as one set of statements.

GO is not a Transact-SQL statement, instead it is a command recognized by the Sql Server Management Studio (i.e. SSMS), SQLCMD and OSQL utilities. These utilities send all statements after the previous GO statement and before the current GO statement as one Batch to the Sql Server engine for execution. So, it means everything in that batch is local to that batch. In other words any variables declared in the current batch will not be visible in the next batch (i.e. variables declared before the GO statement are not accessible after the GO statement).

GO Statement can also be used to execute batch of T-Sql statement multiple times. Let us understand GO statement with extensive list of examples:

Example 1: GO Statement the Batch Separator example DECLARE @Name NVARCHAR(50) = 'Basavaraj Biradar'
SELECT @Name AS 'Name'
GO
DECLARE @Name NVARCHAR(50) = 'Shreeganesh Biradar'
SELECT @Name AS 'Name'

RESULT:


GO Statement in Sql Server

Even though here we see that the same variable @Name is declared twice, but it is still working. Reason is between these two variable declarations we have a batch separator GO statement. Variables declared before the GO statement are not accessible after the GO statement. Basically SSMS sends the first batch (i.e. Batch 1) of statements to the SQL Engine first, once its execution is over it sends the second batch of statements (i.e. Batch 2) after the GO statement to the SQL Engine for execution.

Example 2: Execute batch of T-Sql statements multiple times in SSMS

GO statement also has an integer optional parameter, this parameter value signals Sql Server to execute the batch of T-Sql Statement prior to the GO statement to be executed for the specified number of times. Let us understand this with following example:

PRINT 'Hello'
GO 5

RESULT:


GO Statement in Sql Server
Example 3: T-Sql statements shouldn’t be on the same line as that of the GO Statement GO SELECT 'Basavaraj Biradar' RESULT:

A fatal scripting error occurred.

Incorrect syntax was encountered while parsing GO.

To avoid this issue, we can re-write the above example as below:

GO
SELECT 'Basavaraj Biradar'

RESULT:


GO Statement in Sql Server
Example 4: Comment can be on the same line as GO statement

We can write comment on the same line as that of the GO statement

GO --Comment can be on the same line as GO

RESULT:


GO Statement in Sql Server

Example 5: GO statement can’t be part of the definition of the Stored Procedure, Function, View etc

We can’t add a GO statement in the definition of the Stored Procedure/Function/View etc

CREATE PROCEDURE GOStatementDemo
AS
BEGIN
SELECT 'Basavaraj Biradar'
GO
SELECT 'Shreeganesh Biradar'
END RESULT: Msg 102, Level 15, State 1, Procedure GOStatementDemo, Line 4 [Batch Start Line 0]

Incorrect syntax near ‘Basavaraj Biradar’.

Msg 102, Level 15, State 1, Line 7

Incorrect syntax near ‘END’.

本文数据库(mssql)相关术语:熊片数据库 mssql数据库 oracle数据库 pubmed数据库 access数据库 万方数据库

主题: SQLSUASBDU
分页:12
转载请注明
本文标题:GO Statement in Sql Server
本站链接:http://www.codesec.net/view/481811.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(mssql) | 评论(0) | 阅读(24)