批处理GO的作用

jamex · · 3273 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

--分析器会先分析下一个go前的所有代码,然后再执行,就算最后一步错,也会回滚到第一个语句的状态,换句话说,就是分析器会把go之间的语句作为一个事务,有错误的话会回滚到上一go之前。
--可以在分析器下运行以下代码

create table temp(myint int)
go --当这个go和下面的那个go没有的话,虽然这个语句正确,但是由于下面出错,这个表也不会创建的,
--当只有这个go,没有下面的那个go的话,表temp会被创建,即使下面的语句出错。
create function myfuntion(@int int)
returns varchar(100)
as
begin
declare @intvar varchar(100)
set @intvar = 'asdfasd'
return @intvar
end
go --没有这个go的话语句会出错,有这个go的话function会先被创建,下面的语句才能被执行

select   [sdaf]= dbo.myfuntion(2)
drop function myfuntion
drop table temp

另一个例子

create table temp(myint int)
GO
insert  tblTemp1  values ('1','2','a')
GO
create table temp2(myint int)
insert  tblTemp1  values ('1','2','a')
--insert  tblTemp  values ('1','2')
create table temp3(myint int)
GO

 

心得:

批处理如果遇到编译错误,整个批处理都不会执行;

遇到运行错误,本批处理中运行错误点前面的执行步骤会生效,运行错误点后面的语句不会执行。

本批处理块中的错误不会影响到其他批处理块的执行!

如果脚本没有一个GO语句,表示整个一段脚本块都是一个批处理块!


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:jamex

查看原文:批处理GO的作用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3273 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传