RENAME(Transact-SQL)
적용 대상:Azure Synapse Analytics AnalyticsPlatform System(PDW)
Azure Synapse Analytics에서 사용자가 만든 테이블의 이름을 바꿉니다. 분석 플랫폼 시스템(PDW)에서 사용자가 만든 테이블, 사용자가 만든 테이블의 열 또는 데이터베이스의 이름을 바꿉니다.
이 문서는 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
-- 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 OBJECT [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name TO new_table_name
적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW)
사용자 정의 테이블의 이름을 변경합니다. 이름을 변경할 테이블을 하나, 둘 또는 세 부분으로 지정합니다. 새 테이블 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 OBJECT [::] [ [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’ 세션을 종료합니다.
열 이름 바꾸기 제한 사항
테이블 배포에 사용되는 열의 이름은 바꿀 수 없습니다. 외부 테이블 또는 임시 테이블의 열 이름도 바꿀 수 없습니다.
뷰는 업데이트되지 않습니다.
데이터베이스의 이름을 바꾸면 이전 데이터베이스 이름을 사용하는 모든 뷰가 무효화됩니다. 이 동작은 데이터베이스의 내부 및 외부 모두에 대한 보기에 적용됩니다. 예를 들어 판매 데이터베이스의 이름을 바꾸면 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;
다음 단계
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기