RENAME(Transact-SQL)
적용 대상: Azure Synapse Analytics Analytics
Platform System(PDW)
Azure Synapse Analytics에서 사용자가 만든 테이블의 이름을 바꿉니다. 사용자가 만든 테이블, 사용자가 만든 테이블의 열 또는 PDW(Analytics Platform System)의 데이터베이스 이름을 바꿉니다.
이 문서는 Azure Synapse Analytics 및 Analytics Platform System(PDW)에만 적용됩니다.
- SQL Server에서 데이터베이스 이름을 바꾸려면 저장 프로시저 sp_renamedb 사용합니다.
- Azure SQL Database에서 데이터베이스 이름을 바꾸려면 ALTER DATABASE(Azure SQL Database) 문을 사용합니다.
- 독립 실행형 전용 SQL 풀(이전의 SQL DW) 이름 바꾸기가 지원됩니다. 현재 Azure Synapse Analytics 작업 영역에서 전용 SQL 풀의 이름을 변경할 수 없습니다.
- 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.
구문
-- Syntax for Azure Synapse Analytics
-- Rename a table.
RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name TO new_table_name
[;]
-- Syntax for Analytics Platform System (PDW)
-- Rename a table
RENAME OBJECT [::] [ [ database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name TO new_table_name
[;]
-- Rename a database
RENAME DATABASE [::] database_name TO new_database_name
[;]
-- Rename a column
RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name COLUMN column_name TO new_column_name [;]
인수
RENAME 개체 [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name TO new_table_name
적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW)
사용자 정의 테이블의 이름을 변경합니다. 1부, 2부 또는 3부로 이름을 바꿀 테이블을 지정합니다. 새 테이블 new_table_name 한 부분으로 지정합니다.
RENAME DATABASE [::] [ database_name to new_database_name
적용 대상: Analytics Platform System(PDW)
database_name에서 사용자 정의 데이터베이스의 이름을 new_database_name으로 변경합니다. 데이터베이스 이름을 다음과 같은 분석 플랫폼 시스템(PDW) 예약된 데이터베이스 이름으로 바꿀 수 없습니다.
master
model
msdb
tempdb
pdwtempdb1
pdwtempdb2
DWConfiguration
DWDiagnostics
DWQueue
RENAME 개체 [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ]table_name COLUMN column_name TO new_column_name
적용 대상: Analytics Platform System(PDW)
테이블의 열 이름을 변경합니다.
사용 권한
이 명령을 실행하려면 다음 권한이 필요합니다.
- 테이블에 대한 ALTER 권한
제한 사항
외부 테이블, 인덱스 또는 뷰의 이름을 바꿀 수 없습니다.
외부 테이블, 인덱스 또는 뷰의 이름을 바꿀 수 없습니다. 이름을 바꾸는 대신 외부 테이블, 인덱스 또는 뷰를 삭제한 다음, 새 이름으로 다시 만들 수 있습니다.
사용 중인 테이블의 이름을 바꿀 수 없음
사용 중인 동안에는 테이블 또는 데이터베이스의 이름을 바꿀 수 없습니다. 테이블 이름을 변경하려면 테이블에 대해 배타적 잠금이 필요합니다. 테이블이 사용 중인 경우 테이블을 사용하는 세션을 종료해야 할 수 있습니다. 세션을 종료하려면 KILL 명령을 사용할 수 있습니다. 세션이 종료될 때 커밋되지 않은 모든 작업이 롤백되므로 KILL을 신중하게 사용합니다. Azure Synapse Analytics의 세션에는 'SID'가 접두사로 지정됩니다. KILL 명령을 호출할 때 'SID'와 세션 번호를 포함합니다. 다음은 활성 또는 유휴 세션 목록을 보고 세션 'SID1234'을 종료하는 예제입니다.
열 제한 이름 바꾸기
테이블의 배포에 사용되는 열의 이름을 바꿀 수 없습니다. 외부 테이블 또는 임시 테이블의 열 이름을 바꿀 수도 없습니다.
뷰는 업데이트되지 않습니다.
데이터베이스의 이름을 바꾸면 이전 데이터베이스 이름을 사용하는 모든 뷰가 무효화됩니다. 이 동작은 데이터베이스의 내부 및 외부 모두에 대한 보기에 적용됩니다. 예를 들어 Sales 데이터베이스의 이름을 바꾸면 포함된 SELECT * FROM Sales.dbo.table1
보기가 유효하지 않습니다. 이 문제를 해결하려면 보기에서 세 부분으로 구성된 이름을 사용하지 않거나 새 데이터베이스 이름을 참조하도록 보기를 업데이트할 수 있습니다.
테이블의 이름을 바꾸면 뷰는 새 테이블 이름을 참조하도록 업데이트되지 않습니다. 이전 테이블 이름을 참조하는 데이터베이스 내부 또는 외부의 각 보기는 유효하지 않습니다. 이 문제를 해결하려면 각 보기를 업데이트하여 새 테이블 이름을 참조할 수 있습니다.
열 이름을 바꾸는 경우, 뷰는 새 열 이름을 참조하도록 업데이트되지 않습니다. ALTER VIEW를 수행할 때까지 뷰에 이전 열 이름이 계속 표시됩니다. 경우에 따라 보기를 삭제하고 다시 만들어야 하는 잘못된 보기가 될 수 있습니다.
잠금
테이블 이름 바꾸기는 DATABASE 개체에 대한 공유 잠금, SCHEMA 개체에 대한 공유 잠금 및 테이블에 대한 배타적 잠금을 사용합니다.
예제
A. 데이터베이스 이름 바꾸기
적용 대상: Analytics Platform System(PDW)만 해당
이 예제에서는 사용자 정의 데이터베이스 AdWorks의 이름을 AdWorks2로 바꿉니다.
-- Rename the user defined database AdWorks
RENAME DATABASE AdWorks to AdWorks2;
테이블 이름을 바꾸면 테이블과 연결된 모든 개체와 속성이 새 테이블 이름을 참조하도록 업데이트됩니다. 예를 들어, 테이블 정의, 인덱스, 제약 조건 및 권한이 업데이트됩니다. 보기가 업데이트되지 않습니다.
B. 테이블 이름 바꾸기
적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW)
이 예제에서는 Customer 테이블의 이름을 Customer1로 바꿉니다.
-- Rename the customer table
RENAME OBJECT Customer TO Customer1;
RENAME OBJECT mydb.dbo.Customer TO Customer1;
테이블 이름을 바꾸면 테이블과 연결된 모든 개체와 속성이 새 테이블 이름을 참조하도록 업데이트됩니다. 예를 들어, 테이블 정의, 인덱스, 제약 조건 및 권한이 업데이트됩니다. 보기가 업데이트되지 않습니다.
C. 테이블을 다른 스키마로 이동
적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW)
개체를 다른 스키마로 이동하려는 경우 ALTER SCHEMA를 사용합니다. 예를 들어 다음 문은 제품 스키마에서 dbo 스키마로 테이블 항목을 이동합니다.
ALTER SCHEMA dbo TRANSFER OBJECT::product.item;
D. 테이블 이름 변경 전에 세션 종료
적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW)
사용 중인 테이블의 이름은 바꿀 수 없습니다. 테이블 이름을 바꾸려면 테이블에 대한 배타적 잠금이 필요합니다. 테이블이 사용 중인 경우 테이블을 사용하여 세션을 종료해야 할 수 있습니다. 세션을 종료하려면 KILL 명령을 사용할 수 있습니다. 세션이 종료될 때 커밋되지 않은 모든 작업이 롤백되므로 KILL을 신중하게 사용합니다. Azure Synapse Analytics의 세션에는 'SID'가 접두사로 지정됩니다. KILL 명령을 호출할 때 'SID'와 세션 수를 포함해야 합니다. 다음은 활성 또는 유휴 세션 목록을 보고 세션 'SID1234'을 종료하는 예제입니다.
-- View a list of the current sessions
SELECT session_id, login_name, status
FROM sys.dm_pdw_exec_sessions
WHERE status='Active' OR status='Idle';
-- Terminate a session using the session_id.
KILL 'SID1234';
E. 열 이름 바꾸기
적용 대상: Analytics Platform System(PDW)
이 예제에서는 Customer 테이블의 FName 열 이름을 FirstName으로 바꿉니다.
-- Rename the Fname column of the customer table
RENAME OBJECT::Customer COLUMN FName TO FirstName;
RENAME OBJECT mydb.dbo.Customer COLUMN FName TO FirstName;