SQL查询语法错误,如果追加Go在顶部

时间:2013-01-02 11:08:07

标签: sql-server database

以下查询有什么问题?但是,如果我先删除“Go”,它就能正常工作。

Go
if exists(select 1 from sys.objects where name='SP_xyz' and type='P')
drop procedure SP_xyz 
Go

1 个答案:

答案 0 :(得分:0)

没有必要先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