2011-11-08 3 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

나는 내 문제를 사용할 수 없다. 그래서 execname을 출력으로 출력하는 코드 조각을 가지고있다. 그래서 datetimestamp와 함께 procname을 제공한다.하지만 exec 문장을 두 번 실행하면, 내가 뭔가를하고 싶은 이유가 내게 던져진다. 저에게 동적으로 timestamp를줍니다. – peter

+0

@peter : 당신은 동적 인 SQL이나 지역 변수가 없을 수 없습니다. 그리고 나는 이것을 할 수 없다는 당신의 추론을 이해하지 못합니다. – gbn

+0

내 수정 된 질문보기 – peter

관련 문제