다음을 통해 공유


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;

다음 단계