RENAME (Transact-SQL)RENAME (Transact-SQL)

適用範圍:Applies to: 是Azure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics 是平行處理資料倉儲Parallel Data Warehouseyes平行處理資料倉儲Parallel Data Warehouse適用範圍:Applies to: 是Azure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics 是平行處理資料倉儲Parallel Data Warehouseyes平行處理資料倉儲Parallel Data Warehouse

重新命名 Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse)中使用者建立的資料表。Renames a user-created table in Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse). 重新命名 平行處理資料倉儲Parallel Data Warehouse 中使用者建立的資料表、使用者所建立資料表或資料庫中的資料行。Renames a user-created table, a column in a user-created table or database in 平行處理資料倉儲Parallel Data Warehouse.

注意

若要重新命名 Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse) 中的資料庫,請使用 ALTER DATABASE (Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse))To rename a database in Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse), use ALTER DATABASE (Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse)). 若要重新命名 Azure SQL Database 中的資料庫,請使用 ALTER DATABASE (Azure SQL Database) 陳述式。To rename a database in Azure SQL Database, use the ALTER DATABASE (Azure SQL Database) statement. 若要重新命名 SQL ServerSQL Server 中的資料庫,請使用預存程序 sp_renamedbTo rename a database in SQL ServerSQL Server, use the stored procedure sp_renamedb.

語法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

-- 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 [;]

引數Arguments

RENAME OBJECT [::] [ [database_name .RENAME OBJECT [::] [ [database_name . [ schema_name ] .[ schema_name ] . ] | [ schema_name .] | [ schema_name . ] ]table_name TO new_table_name 適用於: Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse), 平行處理資料倉儲Parallel Data Warehouse] ]table_name TO new_table_name APPLIES TO:Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse), 平行處理資料倉儲Parallel Data Warehouse

變更使用者定義之資料表的名稱。Change the name of a user-defined table. 指定要重新命名為一部分、 兩部分或三部分名稱的資料表。Specify the table to be renamed with a one-, two-, or three-part name. 將新的資料表 new_table_name 指定為一部分名稱。Specify the new table new_table_name as a one-part name.

RENAME DATABASE [::] [ database_name TO new_database_name 適用於: 平行處理資料倉儲Parallel Data WarehouseRENAME DATABASE [::] [ database_name TO new_database_name APPLIES TO: 平行處理資料倉儲Parallel Data Warehouse

將使用者定義的資料庫名稱從 database_name 變更為 new_database_nameChange the name of a user-defined database from database_name to new_database_name. 您無法將資料庫重新命名為任一以下 平行處理資料倉儲Parallel Data Warehouse 保留的資料庫名稱:You can't rename a database to any of the following 平行處理資料倉儲Parallel Data Warehousereserved database names:

  • mastermaster
  • modelmodel
  • msdbmsdb
  • tempdbtempdb
  • pdwtempdb1pdwtempdb1
  • pdwtempdb2pdwtempdb2
  • DWConfigurationDWConfiguration
  • DWDiagnosticsDWDiagnostics
  • DWQueueDWQueue

RENAME OBJECT [::] [ [database_name .RENAME OBJECT [::] [ [database_name . [ schema_name ] .[ schema_name ] . ] | [ schema_name .] | [ schema_name . ] ]table_name COLUMN column_name TO new_column_name APPLIES TO: 平行處理資料倉儲Parallel Data Warehouse] ]table_name COLUMN column_name TO new_column_name APPLIES TO: 平行處理資料倉儲Parallel Data Warehouse

變更資料表中的資料行名稱。Change the name of a column in a table.

權限Permissions

若要執行此命令,您需要此權限:To run this command, you need this permission:

  • 資料表的 ALTER 權限ALTER permission on the table

限制事項Limitations and Restrictions

無法重新命名外部資料表、 索引或檢視表Cannot rename an external table, indexes, or views

您無法重新命名外部資料表、索引或檢視表。You can't rename an external table, indexes, or views. 在無法重新命名的情況下,您可以卸除外部資料表、 索引或檢視表,然後使用不同的名稱來重建它。Instead of renaming, you can drop the external table, index, or view and then re-create it with the new name.

無法重新命名使用中的資料表Cannot rename a table in use

正在使用資料表或資料庫時,您無法將其重新命名。You can't rename a table or database while it is in use. 需要資料表的獨佔鎖定,才能重新命名。Renaming a table requires an exclusive lock on the table. 如果資料表正在使用中,您可能需要找出是哪些工作階段正在使用該資料表,然後予以終止。If the table is in use, you may need to terminate sessions that are using the table. 若要終止工作階段,您可以使用 KILL 命令。To terminate a session, you can use the KILL command. 請小心使用 KILL,因為當工作階段終止後,任何未認可的工作都將回復。Use KILL cautiously since when a session is terminated any uncommitted work will be rolled back. Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse) 中的工作階段前面會加上 'SID'。Sessions in Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse) are prefixed by 'SID'. 叫用 KILL 命令時,請包含 'SID' 與此工作階段編號。Include 'SID' and the session number when invoking the KILL command. 此範例會檢視作用中或閒置的工作階段清單,然後會終止工作階段 'SID1234'。This example views a list of active or idle sessions and then terminates session 'SID1234'.

重新命名資料行的限制Rename column restrictions

您無法重新命名用於資料表散發的資料行。You can't rename a column that is used for the table's distribution. 您也無法重新命名外部資料表或暫存資料表中的任何資料行。You also can't rename any columns in an external table or a temp table.

不會更新檢視表Views are not updated

重新命名資料庫時,所有使用舊資料庫名稱的檢視都會都變成無效。When renaming a database, all views that use the former database name will become invalid. 此行為適用於資料庫內部和外部的檢視表。This behavior applies to views both inside and outside the database. 例如,如果重新命名 Sales 資料庫,則包含 SELECT * FROM Sales.dbo.table1 的檢視表將變成無效。For example, if the Sales database is renamed, a view that contains SELECT * FROM Sales.dbo.table1 will become invalid. 若要解決此問題,您可以避免在檢視表中使用三部分的名稱,或是更新檢視表來參考新的資料庫名稱。To resolve this issue, you can either avoid using three-part names in views, or update the views to reference the new database name.

重新命名資料表時,無法更新檢視表來參考新的資料表名稱。When renaming a table, views are not updated to reference the new table name. 無論是資料庫內部或外部檢視表,只要參考舊資料表名稱,都將變成無效。Each view, inside or outside of the database, that references the former table name will become invalid. 若要解決此問題,您可以更新每一個檢視表來參考新的資料表名稱。To resolve this issue, you can update each view to reference the new table name.

重新命名資料行時,無法更新檢視來參考新的資料行名稱。When renaming a column, views are not updated to reference the new column name. 在執行變更檢視前,檢視會持續顯示舊的資料行名稱。Views will keep showing the old column name until an alter view is performed. 在某些情況下,需要卸除並重新建立的檢視,可能會變成無效。In certain cases, views can become invalid needing a drop and recreate.

鎖定Locking

重新命名資料表時,會取得 DATABASE 物件上的共用鎖定、SCHEMA 物件上的共用鎖定、以及資料表上的獨佔鎖定。Renaming a table takes a shared lock on the DATABASE object, a shared lock on the SCHEMA object, and an exclusive lock on the table.

範例Examples

A.A. 重新命名資料庫Rename a database

適用於: 平行處理資料倉儲Parallel Data WarehouseAPPLIES TO:平行處理資料倉儲Parallel Data Warehouse only

此範例會將使用者定義的資料庫從 AdWorks 重新命名為 AdWorks2。This example renames the user-defined database AdWorks to AdWorks2.

-- Rename the user defined database AdWorks
RENAME DATABASE AdWorks to AdWorks2;

重新命名資料表時,會更新與該資料表相關聯的所有物件與屬性以參考新的資料表名稱。When renaming a table, all objects and properties associated with the table are updated to reference the new table name. 例如,會更新資料表定義、 索引、 條件約束與權限。For example, table definitions, indexes, constraints, and permissions are updated. 不會更新檢視表。Views are not updated.

B.B. 重新命名資料表Rename a table

適用於: Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse)平行處理資料倉儲Parallel Data WarehouseAPPLIES TO: Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse), 平行處理資料倉儲Parallel Data Warehouse

此範例會將 Customer 資料表重新命名為 Customer 1。This example renames the Customer table to Customer1.

-- Rename the customer table
RENAME OBJECT Customer TO Customer1;

RENAME OBJECT mydb.dbo.Customer TO Customer1;

重新命名資料表時,會更新與該資料表相關聯的所有物件與屬性以參考新的資料表名稱。When renaming a table, all objects and properties associated with the table are updated to reference the new table name. 例如,會更新資料表定義、 索引、 條件約束與權限。For example, table definitions, indexes, constraints, and permissions are updated. 不會更新檢視表。Views are not updated.

C.C. 將資料表移到不同的結構描述Move a table to a different schema

適用於: Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse)平行處理資料倉儲Parallel Data WarehouseAPPLIES TO: Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse), 平行處理資料倉儲Parallel Data Warehouse

如果您想要將物件移至不同的結構描述,請使用 ALTER SCHEMAIf your intent is to move the object to a different schema, use ALTER SCHEMA. 例如,下列陳述式會將資料表項目從產品結構描述移至 dbo 結構描述。For example, the following statement moves the table item from the product schema to the dbo schema.

ALTER SCHEMA dbo TRANSFER OBJECT::product.item;

D.D. 重新命名資料表前,先終止工作階段Terminate sessions before renaming a table

適用於: Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse)平行處理資料倉儲Parallel Data WarehouseAPPLIES TO: Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse), 平行處理資料倉儲Parallel Data Warehouse

您無法在資料表使用中時將其重新命名。You can't rename a table while it is in use. 重新命名資料表時,需要取得資料表的獨佔鎖定。A rename of a table requires an exclusive lock on the table. 如果資料表正在使用中,您可能需要找出是哪些工作階段正在使用該資料表,然後予以終止。If the table is in use, you may need to terminate the session using the table. 若要終止工作階段,您可以使用 KILL 命令。To terminate a session, you can use the KILL command. 請小心使用 KILL,因為當工作階段終止後,任何未認可的工作都將回復。Use KILL cautiously since when a session is terminated any uncommitted work will be rolled back. Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse) 中的工作階段前面會加上 'SID'。Sessions in Azure Synapse Analytics (SQL 資料倉儲)Azure Synapse Analytics (SQL Data Warehouse) are prefixed by 'SID'. 叫用 KILL 命令時,應該包含 'SID' 與工作階段編號。You will need to include 'SID' and the session number when invoking the KILL command. 此範例會檢視作用中或閒置的工作階段清單,然後會終止工作階段 'SID1234'。This example views a list of active or idle sessions and then terminates session '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.E. 重新命名資料行Rename a column

適用於: 平行處理資料倉儲Parallel Data WarehouseAPPLIES TO: 平行處理資料倉儲Parallel Data Warehouse

此範例會將 Customer 資料表的 FName 資料行重新命名為 FirstName。This example renames the FName column of the Customer table to 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;