2011-11-08 4 views
0

Y a-t-il un moyen de renommer la procédure stockée dynamiquement?Renommage dynamique de la procédure stockée

Par exemple:

si mon nom de procédure est: 'usp_sg_Cons_Data'

Je veux faire quelque chose comme:

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

Donc, si j'exécutons ce qui précède, il faut renommer 'usp_sg_Cons_Data' à 'usp_sg_Cons_Data__201111081402'

Existe-t-il un moyen de le faire?

+2

vous utilisez le renommage comme une substitution pour le contrôle de la source? – StingyJack

+2

Je suis assez curieux de savoir pourquoi vous avez besoin de cela, il se sent mal à bien des égards – BlackTigerX

+0

@BlackTigerX c'est un petit code de plus gros code essentiellement ce qu'il fait est il va vérifier si la procédure existe ou non si elle existe, il renomme le procédure existante avec datetimestamp et si elle n'existe pas, il va juste créer une procédure – peter

Répondre

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 

Choisissez votre chosen CONVERT style here

+0

Je ne peux pas utiliser mon problème est que j'ai un morceau de code qui sort l'instruction rename en sortie, donc il me donne procname avec datetimestamp mais si j'exécute cette instruction exec deux fois il me jette une erreur c'est pourquoi je veux faire quelque chose cela me donne un timestamp dynamique – peter

+0

@peter: vous ne pouvez pas sans SQL dynamique ou variable locale. Et je ne comprends pas ton raisonnement pour ne pas pouvoir faire ça. – gbn

+0

s'il vous plaît voir ma question éditée – peter

Questions connexes