데이터베이스를 관리하다 보면 개체(OBJECT)의 이름을 변경할 필요가 발생합니다.
사용자가 만든 개체의 이름을 변경할 수 있습니다만, 개체 이름을 변경하면 스크립트나 저장 프로시저가 작동되지 않을 수 있으므로 사전에 충분한 확인이 필요합니다.
그리고 저장 프로시저, 트리거, 사용자 정의 함수, 뷰는 이름을 변경하지 않는 것을 권고합니다. 저장 프로시저, 트리거, 사용자 정의 함수, 뷰에 대하여 이름을 변경할 필요가 발생하는 경우에는 이름을 변경하는 대신 개체를 삭제하고 새로운 이름으로 다시 만듭니다. 저장 프로시저, 트리거, 사용자 정의 함수, 뷰를 다시 생성하는 경우에는 이전과 동일하게 권한을 설정하는 작업이 부가적으로 필요합니다.
n 테이블 이름 변경하기
[따라하기] 테이블 이름 변경하기 |
EXEC sp_rename 'Territories', 'Territs' GO |
n 인덱스 이름 변경하기
표준화된 명명 규칙에 따라 인덱스의 이름을 변경할 수 있습니다. 또한 예를 들어, 쿼리에서 강제로 어떤 인덱스를 사용하도록 인덱스 힌트를 사용한 경우에 인덱스의 이름에 HINT 접두어를 추가하여 표시함으로써 DBA가 임의로 인덱스를 변경하지 않도록 경고할 때 사용할 수도 있습니다.
[따라하기] 인덱스 이름 변경하기 |
EXEC sp_rename 'Customers.PostalCode', 'IX_ZipCode', 'INDEX' GO |
n 제약 조건 이름 변경하기
sp_rename을 사용하여 Customer 테이블을 Customers_Old으로 테이블 이름을 변경한 후에, Customers 테이블을 새로 만든다고 가정합니다. 데이터베이스 내에서 인덱스의 이름은 중복 가능하지만, PRIMARY KEY 제약 조건의 이름은 고유해야 합니다. 이런 경우에 Customers_Old 테이블의 PRIMARY KEY 제약 조건의 이름을 PK_Customers에서 PK_Customerd_Old로 변경하면, 새로 만드는 Customers 테이블에 PK_Customers라는 이름의 제약조건을 만들 수 있습니다.
[따라하기] 제약 조건 이름 변경하기 |
EXEC sp_rename 'Customers_Old.PK_Customers', 'PK_Customers_Old' GO |
n 저장 프로시저, 뷰, 트리거 이름 변경하기
저장 프로시저 및 뷰의 이름을 변경하면, 프로시저 캐시를 플러시하여 모든 종속 저장 프로시저 및 뷰가 재컴파일 됩니다.
저장 프로시저, 사용자 함수, 뷰 또는 트리거의 이름을 변경해도 sys.sql_modules 카탈로그 뷰의 definition 열에 있는 해당 개체의 이름은 변경되지 않으므로, 이 문장을 사용하여 변경하지 않을 것을 권고합니다. 대신에, 개체를 삭제한 다음에 새로운 이름으로 다시 만드는 것을 권고합니다.
[따라하기] |
EXEC sp_rename 'Sales by Year', 'SalesByYear'; GO |
n 별칭 데이터 형식의 이름 변경하기
[따라하기] |
CREATE TYPE Customer_SSN FROM varchar(13) NOT NULL; GO EXEC sp_rename 'Customer_SSN', 'SSN', 'USERDATATYPE'; GO |
'연구개발 > SQL2005' 카테고리의 다른 글
[SQL 2005 GUIDE] 테이블이 사용하는 공간 확인하기 (0) | 2009.07.06 |
---|---|
[SQL 2005 GUIDE] 테이블 정보 확인하기 (0) | 2009.07.06 |
[SQL 2005 GUIDE] 테이블 변경 - 열 변경하기 (0) | 2009.07.06 |
[SQL 2005 GUIDE] 테이블 변경 - 열 삭제하기 (0) | 2009.07.06 |
[SQL 2005 GUIDE] 테이블 변경 - 열 추가하기 (0) | 2009.07.06 |