2011-11-08 26 views
0

ストアドプロシージャの名前を動的に変更する方法はありますか。ストアドプロシージャの名前を動的に変更する

私のプロシージャ名がある場合: 'usp_sg_Cons_Data'

私のような何かをしたい:だから私はそれ以上の名前を変更する必要があります実行している場合

EXEC sp_rename 'usp_sg_Cons_Data','usp_sg_Cons_Data__' + Current datetimestamp 

'をusp_sg_Cons_Data' は、例えば

〜 'usp_sg_Cons_Data__201111081402'

方法はありますか?

+2

あなたがソース管理のための代替としてリネーム使用していますか? – StingyJack

+2

私はこれがなぜ必要なのかは非常に不思議です。多くの点で間違っていると感じています。 – BlackTigerX

+0

@BlackTigerXこれは大きなコードの小さなコードです。基本的にはプロシージャが存在するかどうかをチェックします。既存のプロシージャとdatetimestampが存在しない場合は、プロシージャを作成するだけです。 – peter

答えて

3
DECLARE @oldname varchar(100), @newname varchar(100); 
SET @oldname = 'usp_sg_Cons_Data' 
SET @newname = @oldname + CONVERT(varchar(20), GETDATE(), 120) 
EXEC sp_rename @oldname,@newname 

選んで、あなたのchosen CONVERT style here

+0

私は私の問題を使用することはできません。私は出力としてexec名変更ステートメントを出力するコードを持っていますので、datetimestampと一緒にprocnameを与えますが、execステートメントを2回実行すると、それは私に動的にタイムスタンプを与えます – peter

+0

@peter:あなたはいくつかの動的SQLまたはローカル変数なしではできません。そして私はこれをすることができないというあなたの推論を理解していません。 – gbn

+0

私の編集した質問を参照してください – peter

関連する問題