我正在使用Server,我一直在开发一个存储过程来重命名其他存储过程(实际上,在它的名称中添加一个前缀)。我一直在尝试这样做,但我不知道为什么会有这个错误。
看看我的代码:
DECLARE @_currentProcedure AS VARCHAR(300)
DECLARE @_newProcedure AS VARCHAR(300)
SET @_currentProcedure = '[dbo].[' + @ProcedureName + ']'
SET @_newProcedure = @Prefx + @ProcedureName
-- check if this procedure exists
IF (EXISTS(SELECT *
FROM [dbo].[sysobjects]
WHERE ID = object_id(@_currentProcedure )
AND OBJECTPROPERTY(id, N'IsProcedure') = 1
))
BEGIN
-- rename it (doesn't work)
EXEC sp_rename @_currentProcedure , @_newProcedure , 'OBJECT'
GO
END当我试图编译它时,我会看到一个错误:
“对象”附近的
错误语法
接近“结束”的错误语法
就像这样。
我能做些什么来修复这个错误并使这个过程工作!?
谢谢!
发布于 2011-07-14 17:57:29
好吧,GO应该到此为止了。那应该是
BEGIN
EXEC sp_rename @_currentProcedure , @_newProcedure , 'OBJECT'
END
GO 发布于 2011-07-14 17:57:29
_newProcedure是从@过程名设置的,因此缺少了添加到_currentProcedure中的方括号和dbo.。
尝试:
SET @_newProcedure = '[dbo].[' + @Prefx + @ProcedureName + ']' https://stackoverflow.com/questions/6697735
复制相似问题