sql server如果在运行存储的proc内部时阻塞错误 - 给出语法错误

时间:2012-07-19 19:54:07

标签: sql sql-server

我想要一个部署的脚本可重新运行。所以我在重命名之前检查表是否存在。

IF EXISTS ( SELECT  * FROM    sys.objects  WHERE   object_id = OBJECT_ID(N'[dbo].[Schema]')  AND type IN ( N'U' ) )  
BEGIN
sp_rename [Schema], [SchemaInfo] 
END

错误是

  

'sp_rename'附近的语法不正确。

2 个答案:

答案 0 :(得分:5)

尝试:

EXEC sp_rename N'Schema', N'SchemaInfo';

恕我直言,你不应该在没有EXEC的情况下调用存储过程。

答案 1 :(得分:2)

以下列方式尝试使用EXEC语句:

IF EXISTS ( SELECT  * FROM    sys.objects  WHERE   object_id = OBJECT_ID(N'[dbo].[Schema]')  AND type IN ( N'U' ) )  
BEGIN
EXEC sp_rename [Schema], [SchemaInfo] 
END