是否有任何正文知道为什么以下SQL在SQL Server 2012中返回语法错误(语法附近的错误语法' IF')?
DROP PROCEDURE IF EXISTS MyStoredProcedure;
我知道我可以使用以下代码:
IF EXISTS(SELECT 1 FROM sys.procedures
WHERE Name = 'MyStoredProcedure')
但我想知道为什么第一个产生错误。
谢谢!
答案 0 :(得分:0)
这有效:
IF EXISTS(SELECT 1 FROM sys.procedures
WHERE Name = 'MyStoredProcedure')
print 'yes'
-- drop procedure mystoredprocedure
您的查询窗口中必须有其他内容正在抛出错误,或者您按错误的顺序运行。
对于它的价值,这是我在我CREATE PROCEDURE
之前删除/构建程序的“去”...所有我保存的proc脚本都有这个。
IF OBJECT_ID('dbo.uspSomeProcName') IS NOT NULL
BEGIN
DROP PROCEDURE dbo.uspSomeProcName
IF OBJECT_ID('dbo.uspSomeProcName') IS NOT NULL
PRINT '<<< FAILED DROPPING PROCEDURE dbo.uspSomeProcName>>>'
ELSE
PRINT '<<< DROPPED PROCEDURE dbo.uspSomeProcName>>>'
END