以下查询有什么问题?但是,如果我删除第一个“Go”,它会正常工作。
Go
if exists(select 1 from sys.objects where name='SP_xyz' and type='P')
drop procedure SP_xyz
Go
以下查询有什么问题?但是,如果我删除第一个“Go”,它会正常工作。
Go
if exists(select 1 from sys.objects where name='SP_xyz' and type='P')
drop procedure SP_xyz
Go
无需先GO,
因为 GO 是执行批处理的命令。在第一个 GO 执行之前你没有任何语句。
请参考下面的示例和评论。
以下示例创建两个批次。第一批只包含一个 USEAdventureWorks2012 语句来设置数据库上下文。其余语句使用局部变量。因此,必须将所有局部变量声明分组在一个批次中。这是通过在引用变量的最后一条语句之后才使用 GO 命令来完成的。
USE AdventureWorks2012;
GO
DECLARE @NmbrPeople int
SELECT @NmbrPeople = COUNT(*)
FROM Person.Person;
PRINT 'The number of people as of ' +
CAST(GETDATE() AS char(20)) + ' is ' +
CAST(@NmbrPeople AS char (10));
GO