繁体   English   中英

TSQL中GO语句的含义是什么?

[英]What's the meaning of the GO-statement in TSQL

我是TSQL的新手,想知道GO语句的真正含义。 对我来说,它似乎只是在那里似乎适合。

我想它以某种方式告诉sql server运行前一个语句? 如果您根本不使用它们会发生什么? 如果我不使用GO有人可以给出一个声明将会中断的示例。

请详细说明。

它是批量终止符

这会打破

declare @i int
set @i =5

declare @i int
set @i =6

Select @i

消息134,级别15,状态1,行5变量名称'@i'已经声明。 变量名在查询批处理或存储过程中必须是唯一的。

这会奏效

declare @i int
set @i =5

go
declare @i int
set @i =6

Select @i

它结束批次。

它很少需要,而且使用频率远远超过它应该使用的频率。 一个有效的地方是存储过程编程,你首先检查proc是否存在,如果不存在则删除它。 然后使用go语句结束批处理,因为create proc语句必须是批处理的第一个语句。

顺便说说。 它实际上不是TSQL命令。 它只是由Microsoft DB工具用于分隔两批命令。

实际上,如果您想在Optionss..Batch分离首选项设置下,可以将其配置为SSMS中的不同单词。

这种区别很重要的主要地方是,如果您尝试通过代码中的数据库连接(例如通过ADO.NET)在查询中使用它们,那么SQL将会阻塞GO语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM