我是TSQL的新手,想知道这个GO
陈述的真正含义.对我来说,它似乎只是在那里似乎适合.
我想它以某种方式告诉sql server运行前一个语句?如果您根本不使用它们会发生什么?有人可以给出一个例子,如果我不使用a,语句将会中断GO
.
请详细说明.
SQL*_*ace 14
它是批量终止符
这会打破
declare @i int
set @i =5
declare @i int
set @i =6
Select @i
Run Code Online (Sandbox Code Playgroud)
消息134,级别15,状态1,行5变量名称'@i'已经声明.变量名在查询批处理或存储过程中必须是唯一的.
这会奏效
declare @i int
set @i =5
go
declare @i int
set @i =6
Select @i
Run Code Online (Sandbox Code Playgroud)
HLG*_*GEM 10
它结束批次.
它很少需要,并且使用得更频繁.一个有效的地方是存储过程编程,你首先检查proc是否存在,如果不存在则删除它.然后使用go语句结束批处理,因为create proc语句必须是批处理的第一个语句.
顺便说说.它实际上不是TSQL命令.它只是由Microsoft DB工具用于分隔两批命令.
实际上,如果您想在Optionss..Batch分离首选项设置下,可以将其配置为SSMS中的不同单词.
这种区别很重要的主要地方是,如果您尝试通过代码中的数据库连接(例如通过ADO.NET)在查询中使用它们,那么SQL将会阻塞GO语句.
归档时间: |
|
查看次数: |
6556 次 |
最近记录: |