2011-11-08 105 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這是一個較大代碼的小代碼,基本上它所做的是檢查程序是否存在,如果它存在,它將重命名現有的程序與日期時間戳,如果它不存在,它只會創建過程 – 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

我不能使用,我的問題是我有一段代碼輸出執行重命名語句作爲輸出,所以它給我procname與日期時間戳,但如果我運行該執行語句兩次它會引發一個錯誤,這就是爲什麼我想做點什麼這給我動態的時間戳 – peter

+0

@peter:你不能沒有一些動態的SQL或本地變量。我不明白你不能做到這一點的理由。 – gbn

+0

請看我編輯的問題 – peter