2011-07-14 10 views
0

私はSQL 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 

をそして、私はこれをコンパイルしようとすると、私はEND」近い「OBJECT」
間違った構文を近く

間違った構文を言ってエラーが出ます'

このようなものです。

このエラーを修正してこの手順を実行するにはどうすればよいですか。

ありがとうございました!

答えて

3

まあGOは終わりでなければならないこと...それはそれはあなたの助けすぎマークについて

BEGIN 
EXEC sp_rename @_currentProcedure , @_newProcedure , 'OBJECT' 
END 
GO 
+0

私はプロシージャからGOコマンドを取得し、今は動作しています。ラフールありがとう! –

0

_newProcedureは@Procedure名から設定されているので、それはあなたが_currentProcedureに追加したブラケットとdbo.が欠落しています。

試してみてください。

SET @_newProcedure = '[dbo].[' + @Prefx + @ProcedureName + ']' 
+0

おかげであるべきです!しかし、私の手続きは編集されていませんでした!今それは働いている!ありがとう! –

関連する問題