今天遇到这个问题的,请大家帮我全面分析下,或者给点资料也可以。
谢谢
9 个解决方案
#1
学习.
#2
简单来说,分号是一句的结尾,GO是一段的结尾.
#3
..
#4
差不多吧
#5
没什么可比性。
;标识单句sql的结束,跟批处理无关。对一些用处较多、易造成歧义的关键字,最好以;标志,比如with。
go是批量提交的标志,处理完这一段功能,系统再去处理下一批。
;标识单句sql的结束,跟批处理无关。对一些用处较多、易造成歧义的关键字,最好以;标志,比如with。
go是批量提交的标志,处理完这一段功能,系统再去处理下一批。
#6
;是一个sql语句结束
go是一个批(多个语句)的结束
go是一个批(多个语句)的结束
#7
可能楼主看错资料了
;在MS Sql Server 只是一个语句的结尾,可选(2008以后部分语句变成必须)
;在SYBASE Sql Server 是作为一个作用域的结束,也就是说,";"前定义的变量在";"后不可用。
GO是MS Sql Server专用的,作为一个作用域的结尾。
;在MS Sql Server 只是一个语句的结尾,可选(2008以后部分语句变成必须)
;在SYBASE Sql Server 是作为一个作用域的结束,也就是说,";"前定义的变量在";"后不可用。
GO是MS Sql Server专用的,作为一个作用域的结尾。
#8
不一样啊。
分号就是一句的事情,GO 那是一个批结束。
资料
请问各位高手,SQLServer中为什么有批处理的概念?
下面的两组SQLServer语句使用go和不使用go好像没有区别。
(一)
create table aa(col1 int,col2 char(10))
go
create table bb(col1 int,col2 char(11))
(二)
create table aa(col1 int,col2 char(10))
create table bb(col1 int,col2 char(11))
请教高手使用go与不使用go到底有什么不同阿?大家帮帮忙,谢谢了。
使用go与不使用go到底有什么不同
--使用了go 将你要执行的SQL语句分割成一部分一部分来执行Top
批处理 (参见联机丛书)
批处理是包含一个或多个 Transact-SQL 语句的组,从应用程序一次性地发送到 Microsoft® SQL Server™ 执行。SQL Server 将批处理语句编译成一个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条。
编译错误(如语法错误)使执行计划无法编译,从而导致批处理中的任何语句均无法执行。
运行时错误(如算术溢出或违反约束)会产生以下两种影响之一:
大多数运行时错误将停止执行批处理中当前语句和它之后的语句。(遇到错误,后边的语句就别想执行了。)
少数运行时错误(如违反约束)仅停止执行当前语句。而继续执行批处理中其它所有语句。
在遇到运行时错误之前执行的语句不受影响。唯一的例外是如果批处理在事务中而且错误导致事务回滚。在这种情况下,回滚运行时错误之前所进行的未提交的数据修改。
假定在批处理中有 10 条语句。如果第五条语句有一个语法错误,则不执行批处理中的任何语句。如果编译了批处理,而第二条语句在执行时失败,则第一条语句的结果不受影响,因为它已经执行。
以下规则适用于批处理:
CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其它语句组合使用。批处理必须以 CREATE 语句开始。所有跟在该批处理后的其它语句将被解释为第一个 CREATE 语句定义的一部分。
不能在同一个批处理中更改表,然后引用新列。
如果 EXECUTE 语句是批处理中的第一句,则不需要 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。
GO (参见联机丛书)
用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束。
语法
GO
注释
GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。
SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。SQL 查询分析器和 osql 及 isql 命令提示实用工具执行 GO 命令的方式不同。有关更多信息,请参见 osql 实用工具、isql 实用工具和 SQL 查询分析器。
GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。
用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。
USE pubs
GO
DECLARE @MyMsg VARCHAR(50)
SELECT @MyMsg = 'Hello, World.'
GO -- @MyMsg is not valid after this GO ends the batch.
-- Yields an error because @MyMsg not declared in this batch.
PRINT @MyMsg
GO
SELECT @@VERSION;
-- Yields an error: Must be EXEC sp_who if not first statement in
-- batch.
sp_who
GO
SQL Server 应用程序可将多条 Transact-SQL 语句作为一个批处理发给 SQL Server 去执行。在此批处理中的语句编译成一个执行计划。程序员在 SQL Server 实用工具中执行特定语句,或生成 Transact-SQL 语句脚本在 SQL Server 实用工具中运行,用 GO 来标识批处理的结束。
如果基于 DB-Library、ODBC 或 OLE DB APIs 的应用程序试图执行 GO 命令时会收到语法错误。SQL Server 实用工具永远不会向服务器发送 GO 命令。
权限
GO 是一个不需权限的实用工具命令。可以由任何用户执行。
在存储过程中GO语句在其尾部。
分号就是一句的事情,GO 那是一个批结束。
资料
请问各位高手,SQLServer中为什么有批处理的概念?
下面的两组SQLServer语句使用go和不使用go好像没有区别。
(一)
create table aa(col1 int,col2 char(10))
go
create table bb(col1 int,col2 char(11))
(二)
create table aa(col1 int,col2 char(10))
create table bb(col1 int,col2 char(11))
请教高手使用go与不使用go到底有什么不同阿?大家帮帮忙,谢谢了。
使用go与不使用go到底有什么不同
--使用了go 将你要执行的SQL语句分割成一部分一部分来执行Top
批处理 (参见联机丛书)
批处理是包含一个或多个 Transact-SQL 语句的组,从应用程序一次性地发送到 Microsoft® SQL Server™ 执行。SQL Server 将批处理语句编译成一个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条。
编译错误(如语法错误)使执行计划无法编译,从而导致批处理中的任何语句均无法执行。
运行时错误(如算术溢出或违反约束)会产生以下两种影响之一:
大多数运行时错误将停止执行批处理中当前语句和它之后的语句。(遇到错误,后边的语句就别想执行了。)
少数运行时错误(如违反约束)仅停止执行当前语句。而继续执行批处理中其它所有语句。
在遇到运行时错误之前执行的语句不受影响。唯一的例外是如果批处理在事务中而且错误导致事务回滚。在这种情况下,回滚运行时错误之前所进行的未提交的数据修改。
假定在批处理中有 10 条语句。如果第五条语句有一个语法错误,则不执行批处理中的任何语句。如果编译了批处理,而第二条语句在执行时失败,则第一条语句的结果不受影响,因为它已经执行。
以下规则适用于批处理:
CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其它语句组合使用。批处理必须以 CREATE 语句开始。所有跟在该批处理后的其它语句将被解释为第一个 CREATE 语句定义的一部分。
不能在同一个批处理中更改表,然后引用新列。
如果 EXECUTE 语句是批处理中的第一句,则不需要 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。
GO (参见联机丛书)
用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束。
语法
GO
注释
GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。
SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。SQL 查询分析器和 osql 及 isql 命令提示实用工具执行 GO 命令的方式不同。有关更多信息,请参见 osql 实用工具、isql 实用工具和 SQL 查询分析器。
GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。
用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。
USE pubs
GO
DECLARE @MyMsg VARCHAR(50)
SELECT @MyMsg = 'Hello, World.'
GO -- @MyMsg is not valid after this GO ends the batch.
-- Yields an error because @MyMsg not declared in this batch.
PRINT @MyMsg
GO
SELECT @@VERSION;
-- Yields an error: Must be EXEC sp_who if not first statement in
-- batch.
sp_who
GO
SQL Server 应用程序可将多条 Transact-SQL 语句作为一个批处理发给 SQL Server 去执行。在此批处理中的语句编译成一个执行计划。程序员在 SQL Server 实用工具中执行特定语句,或生成 Transact-SQL 语句脚本在 SQL Server 实用工具中运行,用 GO 来标识批处理的结束。
如果基于 DB-Library、ODBC 或 OLE DB APIs 的应用程序试图执行 GO 命令时会收到语法错误。SQL Server 实用工具永远不会向服务器发送 GO 命令。
权限
GO 是一个不需权限的实用工具命令。可以由任何用户执行。
在存储过程中GO语句在其尾部。
#9
海爷说的是
#1
学习.
#2
简单来说,分号是一句的结尾,GO是一段的结尾.
#3
..
#4
差不多吧
#5
没什么可比性。
;标识单句sql的结束,跟批处理无关。对一些用处较多、易造成歧义的关键字,最好以;标志,比如with。
go是批量提交的标志,处理完这一段功能,系统再去处理下一批。
;标识单句sql的结束,跟批处理无关。对一些用处较多、易造成歧义的关键字,最好以;标志,比如with。
go是批量提交的标志,处理完这一段功能,系统再去处理下一批。
#6
;是一个sql语句结束
go是一个批(多个语句)的结束
go是一个批(多个语句)的结束
#7
可能楼主看错资料了
;在MS Sql Server 只是一个语句的结尾,可选(2008以后部分语句变成必须)
;在SYBASE Sql Server 是作为一个作用域的结束,也就是说,";"前定义的变量在";"后不可用。
GO是MS Sql Server专用的,作为一个作用域的结尾。
;在MS Sql Server 只是一个语句的结尾,可选(2008以后部分语句变成必须)
;在SYBASE Sql Server 是作为一个作用域的结束,也就是说,";"前定义的变量在";"后不可用。
GO是MS Sql Server专用的,作为一个作用域的结尾。
#8
不一样啊。
分号就是一句的事情,GO 那是一个批结束。
资料
请问各位高手,SQLServer中为什么有批处理的概念?
下面的两组SQLServer语句使用go和不使用go好像没有区别。
(一)
create table aa(col1 int,col2 char(10))
go
create table bb(col1 int,col2 char(11))
(二)
create table aa(col1 int,col2 char(10))
create table bb(col1 int,col2 char(11))
请教高手使用go与不使用go到底有什么不同阿?大家帮帮忙,谢谢了。
使用go与不使用go到底有什么不同
--使用了go 将你要执行的SQL语句分割成一部分一部分来执行Top
批处理 (参见联机丛书)
批处理是包含一个或多个 Transact-SQL 语句的组,从应用程序一次性地发送到 Microsoft® SQL Server™ 执行。SQL Server 将批处理语句编译成一个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条。
编译错误(如语法错误)使执行计划无法编译,从而导致批处理中的任何语句均无法执行。
运行时错误(如算术溢出或违反约束)会产生以下两种影响之一:
大多数运行时错误将停止执行批处理中当前语句和它之后的语句。(遇到错误,后边的语句就别想执行了。)
少数运行时错误(如违反约束)仅停止执行当前语句。而继续执行批处理中其它所有语句。
在遇到运行时错误之前执行的语句不受影响。唯一的例外是如果批处理在事务中而且错误导致事务回滚。在这种情况下,回滚运行时错误之前所进行的未提交的数据修改。
假定在批处理中有 10 条语句。如果第五条语句有一个语法错误,则不执行批处理中的任何语句。如果编译了批处理,而第二条语句在执行时失败,则第一条语句的结果不受影响,因为它已经执行。
以下规则适用于批处理:
CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其它语句组合使用。批处理必须以 CREATE 语句开始。所有跟在该批处理后的其它语句将被解释为第一个 CREATE 语句定义的一部分。
不能在同一个批处理中更改表,然后引用新列。
如果 EXECUTE 语句是批处理中的第一句,则不需要 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。
GO (参见联机丛书)
用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束。
语法
GO
注释
GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。
SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。SQL 查询分析器和 osql 及 isql 命令提示实用工具执行 GO 命令的方式不同。有关更多信息,请参见 osql 实用工具、isql 实用工具和 SQL 查询分析器。
GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。
用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。
USE pubs
GO
DECLARE @MyMsg VARCHAR(50)
SELECT @MyMsg = 'Hello, World.'
GO -- @MyMsg is not valid after this GO ends the batch.
-- Yields an error because @MyMsg not declared in this batch.
PRINT @MyMsg
GO
SELECT @@VERSION;
-- Yields an error: Must be EXEC sp_who if not first statement in
-- batch.
sp_who
GO
SQL Server 应用程序可将多条 Transact-SQL 语句作为一个批处理发给 SQL Server 去执行。在此批处理中的语句编译成一个执行计划。程序员在 SQL Server 实用工具中执行特定语句,或生成 Transact-SQL 语句脚本在 SQL Server 实用工具中运行,用 GO 来标识批处理的结束。
如果基于 DB-Library、ODBC 或 OLE DB APIs 的应用程序试图执行 GO 命令时会收到语法错误。SQL Server 实用工具永远不会向服务器发送 GO 命令。
权限
GO 是一个不需权限的实用工具命令。可以由任何用户执行。
在存储过程中GO语句在其尾部。
分号就是一句的事情,GO 那是一个批结束。
资料
请问各位高手,SQLServer中为什么有批处理的概念?
下面的两组SQLServer语句使用go和不使用go好像没有区别。
(一)
create table aa(col1 int,col2 char(10))
go
create table bb(col1 int,col2 char(11))
(二)
create table aa(col1 int,col2 char(10))
create table bb(col1 int,col2 char(11))
请教高手使用go与不使用go到底有什么不同阿?大家帮帮忙,谢谢了。
使用go与不使用go到底有什么不同
--使用了go 将你要执行的SQL语句分割成一部分一部分来执行Top
批处理 (参见联机丛书)
批处理是包含一个或多个 Transact-SQL 语句的组,从应用程序一次性地发送到 Microsoft® SQL Server™ 执行。SQL Server 将批处理语句编译成一个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条。
编译错误(如语法错误)使执行计划无法编译,从而导致批处理中的任何语句均无法执行。
运行时错误(如算术溢出或违反约束)会产生以下两种影响之一:
大多数运行时错误将停止执行批处理中当前语句和它之后的语句。(遇到错误,后边的语句就别想执行了。)
少数运行时错误(如违反约束)仅停止执行当前语句。而继续执行批处理中其它所有语句。
在遇到运行时错误之前执行的语句不受影响。唯一的例外是如果批处理在事务中而且错误导致事务回滚。在这种情况下,回滚运行时错误之前所进行的未提交的数据修改。
假定在批处理中有 10 条语句。如果第五条语句有一个语法错误,则不执行批处理中的任何语句。如果编译了批处理,而第二条语句在执行时失败,则第一条语句的结果不受影响,因为它已经执行。
以下规则适用于批处理:
CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其它语句组合使用。批处理必须以 CREATE 语句开始。所有跟在该批处理后的其它语句将被解释为第一个 CREATE 语句定义的一部分。
不能在同一个批处理中更改表,然后引用新列。
如果 EXECUTE 语句是批处理中的第一句,则不需要 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。
GO (参见联机丛书)
用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束。
语法
GO
注释
GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。
SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。SQL 查询分析器和 osql 及 isql 命令提示实用工具执行 GO 命令的方式不同。有关更多信息,请参见 osql 实用工具、isql 实用工具和 SQL 查询分析器。
GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。
用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。
USE pubs
GO
DECLARE @MyMsg VARCHAR(50)
SELECT @MyMsg = 'Hello, World.'
GO -- @MyMsg is not valid after this GO ends the batch.
-- Yields an error because @MyMsg not declared in this batch.
PRINT @MyMsg
GO
SELECT @@VERSION;
-- Yields an error: Must be EXEC sp_who if not first statement in
-- batch.
sp_who
GO
SQL Server 应用程序可将多条 Transact-SQL 语句作为一个批处理发给 SQL Server 去执行。在此批处理中的语句编译成一个执行计划。程序员在 SQL Server 实用工具中执行特定语句,或生成 Transact-SQL 语句脚本在 SQL Server 实用工具中运行,用 GO 来标识批处理的结束。
如果基于 DB-Library、ODBC 或 OLE DB APIs 的应用程序试图执行 GO 命令时会收到语法错误。SQL Server 实用工具永远不会向服务器发送 GO 命令。
权限
GO 是一个不需权限的实用工具命令。可以由任何用户执行。
在存储过程中GO语句在其尾部。
#9
海爷说的是