sp_rename
현재 데이터베이스에서 테이블, 열 또는 사용자 정의 데이터 형식 등의 사용자 작성 개체의 이름을 변경합니다.
구문
sp_rename [ @objname = ] 'object_name' ,
[ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
인수
[@objname =] 'object_name'
테이블, 뷰, 열, 저장 프로시저, 트리거, 기본값, 데이터베이스, 개체 또는 규칙 등의 사용자 개체 또는 데이터 형식의 현재 이름입니다. 이름을 바꿀 개체가 테이블의 열인 경우, object_name은table.column 형식이어야 합니다. 이름을 바꿀 개체가 인덱스인 경우, object_name은 table.index형식이어야 합니다. object_name은 nvarchar(776)이며 기본값은 없습니다.
[@newname =] 'new_name'
지정한 개체의 새 이름입니다. new_name은 한 부분 이름이어야 하며 식별자 이름 지정 규칙에 따라야 합니다. newname은 sysname이며 기본값은 없습니다.
[@object_type =] 'object_type'
이름을 바꾸는 개체의 유형입니다. object_type은 varchar(13)이며 기본값은 NULL입니다. 다음 값 중 하나를 사용할 수 있습니다.
값 | 설명 |
---|---|
COLUMN | 이름을 바꿀 열입니다. |
DATABASE | 사용자 정의 데이터베이스입니다. 이 옵션은 데이터베이스 이름을 바꿀 경우 필요합니다. |
INDEX | 사용자 정의 인덱스입니다. |
OBJECT | sysobjects에서 추적될 유형의 항목입니다. 예를 들어, OBJECT는 제약 조건(CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY), 사용자 테이블, 뷰, 저장 프로시저, 트리거 및 규칙을 비롯한 개체의 이름을 바꿀 때 사용할 수 있습니다. |
USERDATATYPE | sp_addtype을 실행하여 추가된 사용자 정의 데이터 형식입니다. |
반환 코드 값
0(성공) 또는 0이 아닌 수(실패)
비고
현재 데이터베이스에서만 개체 또는 데이터 형식의 이름을 변경할 수 있습니다. 대부분의 시스템 데이터 형식 및 시스템 개체의 이름은 변경할 수 없습니다.
뷰의 이름을 바꾸는 경우, 뷰에 대한 정보는 sysobjects 테이블에서 업데이트됩니다. 저장 프로시저의 이름을 바꾸는 경우, 저장 프로시저에 대한 정보는 sysobjects 테이블에서 변경됩니다.
sp_rename은 PRIMARY KEY 또는 UNIQUE 제약 조건의 이름을 바꿀 때마다 연결된 인덱스의 이름을 자동으로 바꿉니다. 이름을 바꾼 인덱스가 PRIMARY KEY 제약 조건과 연결이 된 경우, 기본 키 이름 또한 sp_rename이 자동으로 바꿉니다.
중요 저장 프로시저 및 뷰의 이름을 바꾼 후에는 프로시저 캐시를 플러시하여 모든 종속 저장 프로시저 및 뷰가 다시 컴파일되도록 합니다.
저장 프로시저 및 뷰는 데이터를 저장하지 않으므로 빨리 삭제되고 다시 만들어질 수 있습니다. 텍스트 개체 이름 바꾸기에서 최상의 결과를 얻으려면, 개체를 삭제하고 새 이름으로 다시 만드십시오.
사용 권한
Members of the sysadmin 고정 서버 역할, db_owner 및 db_ddladmin 고정 데이터베이스 역할의 구성원 또는 개체의 소유자만이 sp_rename을 실행할 수 있습니다. sysadmin 및dbcreator 고정 서버 역할의 구성원만이 'database'를 object_type으로 하여 sp_rename을 실행할 수 있습니다.
예제
A. 테이블 이름 바꾸기
다음은 customers 테이블의 이름을 custs로 바꾸는 예제입니다.
EXEC sp_rename 'customers', 'custs'
B. 열 이름 바꾸기
다음은 customers 테이블의 contact title 열의 이름을 title로 바꾸는 예제입니다.
EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'