2014-02-24 5 views
3

내 데이터베이스에서 시스템 테이블의 이름을 변경하고 싶습니까? 아마 나는 그것을 바꾸면 안된다. 그러나 나는 호기심이 많다.시스템 테이블의 이름을 변경할 수 있습니까

내가 sp_rename을 실행할 때 나는 다음과 같은 오류가 발생합니다 :

Msg 15001, Level 16, State 1, Procedure sp_rename, Line 404
Object 'cdc.[dbo_CdcTest_CT]' does not exist or is not a valid object for this operation.

편집 : 나는 테이블 CDC 메커니즘을 사용하지 않으려는 여전히 데이터를 가지고 있기 때문에 캡처 변경 데이터에 의해 생성 된 테이블의 이름을 변경하려는 - 추가 테이블을 만들고 CDC 테이블에서 데이터를 이동할 수 있지만 CDC의 이름을 변경하고 지정된 테이블에 대해 cdc를 사용하지 않도록 설정하는 것이 더 쉽다는 것을 알고 있습니다.

+1

왜 당신이 그렇게 할 것이라고 언급? SQL 서버가 내부적으로 이러한 테이블을 쿼리하고 적절한 이름을 사용하기 때문에 심각한 문제가 발생할 것입니다. SO에서 확립 된 형식을 확인하지 않으므로 다시 말하기보다는 질문에 세부 사항을 추가하십시오. 감사. –

+2

다른 이름으로 참조하려는 경우 [동의어] (http://technet.microsoft.com/en-us/library/ms177544.aspx)를 사용할 수 있습니다. –

+0

등록 된 SP에 문제가 있으므로 작은 이름으로 다른 이름으로 만들어보십시오. 그것은 일을 끝낼 것입니다. – tarzanbappa

답변

3

아니요 시스템 테이블의 이름을 변경할 수 없습니다. 그러나 다른 이름으로 참조 할 수 있습니다.

당신은 그것에 대해 synonyms를 사용할 수 있습니다 또한

CREATE SYNONYM [ schema_name_1. ] synonym_name FOR <object> 

<object> :: = 
{ 
    [ server_name.[ database_name ] . [ schema_name_2 ].| database_name . [ schema_name_2 ].| schema_name_2. ] object_name 
} 

sp_rename

Changes the name of a user-created object in the current database.

This object can be a table, index, column, alias data type, or Microsoft .NET Framework common language runtime

관련 문제