"GO"批处理的疑问
一个SQL文件,内容如下:
--创建存储过程
go
--创建作业
go
--创建触发器
go
--备份数据库
问题:
在这个SQL文件下有“创建存储过程”、“创建作业”、“创建触发器”、“备份数据库”四个过程,这四个过程可以一次全部执行吧??? 直接执行SQL文件
还是要这四个过程分开一个“Go”,一个“Go”的单独执行???
[解决办法]
写有go可以一次执行
[解决办法]
一个go一个go的执行方式,如果后面的go语句内容错误,前面的会一样执行。
你可以自己做个试验
[解决办法]
一次执行就可以了。
这里是MSDN的解释:
SQL Server utilities interpret GO as a signal that they should send the current batch of Transact-SQL statements to an instance of SQL Server.The current batch of statements is composed of all statements entered since the last GO, or since the start of the ad hoc session or script if this is the first GO.
[解决办法]
GO 表示上面语句执行一次
你想执行两次
可以写
select 1
GO 2
[解决办法]
每一个go就是一个批处理,可以一次性执行,但是每个go是一个事务,每个go之间具有ACID特性。同时,有些语句必须要加go,有些却不允许加GO,这些要多多体会。
[解决办法]