RENAME (Transact-SQL)

Gilt für:Azure Synapse AnalyticsAnalytics Platform System (PDW)

Benennt eine vom Benutzer erstellte Tabelle in Azure Synapse Analytics um. Benennt eine vom Benutzer erstellte Tabelle, eine Spalte in einer vom Benutzer erstellten Tabelle oder eine Datenbank in Analytics-Plattformsystem (PDW) um.

Dieser Artikel gilt nur für Azure Synapse Analytics und Analytics Platform System (PDW):

  • Verwenden Sie die gespeicherte Prozedur sp_renamedb, um eine Datenbank in SQL Server umzubenennen.
  • Um eine Datenbank in Azure SQL-Datenbank umzubenennen, verwenden Sie die Anweisung ALTER DATABASE (Azure SQL-Datenbank).
  • Das Umbenennen eigenständiger dedizierter SQL-Pools (früher SQL DW) wird unterstützt. Das Umbenennen eines dedizierten SQL-Pools in Azure Synapse Analytics-Arbeitsbereichen wird derzeit nicht unterstützt.
  • Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.

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

Argumente

RENAME OBJECT [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name TO new_table_name

Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW)

Ändern Sie den Namen einer vom Benutzer erstellten Tabelle. Geben Sie die Tabelle an, die mit einem ein-, zwei-, oder dreiteiligen Namen umbenannt werden soll. Geben Sie die neue Tabelle new_table_name als einteiligen Namen an.

RENAME DATABASE [::] [ database_name TO new_database_name

Gilt für: Analytics Platform System (PDW)

Ändern Sie den Namen einer benutzerdefinierten Datenbank von database_name in new_database_name. Sie können bei der Umbenennung der Datenbank keine der folgenden in Analytics-Plattformsystem (PDW) reservierten Datenbanknamen verwenden:

  • 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

Gilt für: Analytics Platform System (PDW)

Ändert den Namen einer Spalte in einer Tabelle.

Berechtigungen

Zur Ausführung dieses Befehls benötigen Sie folgende Berechtigung:

  • ALTER-Berechtigung für die Tabelle

Einschränkungen

Externe Tabellen, Indizes oder Sichten können nicht umbenannt werden

Sie können keine externen Tabellen, Indizes oder Sichten umbenennen. Anstatt sie umzubenennen können Sie die externe Tabelle, den Index oder die Sicht löschen und dann mit dem neuen Namen erneut erstellen.

Verwendete Tabelle kann nicht umbenannt werden

Sie können keine Tabellen oder Datenbanken umbenennen, während diese verwendet werden. Das Umbenennen einer Tabelle erfordert eine exklusive Sperre für die Tabelle. Wenn die Tabelle verwendet wird, müssen Sie möglicherweise die Sitzungen beenden, die die Tabelle verwenden. Zum Beenden einer Sitzung können Sie den KILL-Befehl nutzen. Verwenden Sie den KILL-Befehl mit Bedacht, da für nicht per Commit festgeschriebene Arbeit ein Rollback ausgeführt wird, wenn eine Sitzung beendet wird. Sitzungen in Azure Synapse Analytics wird das Präfix „SID“ vorangestellt. Geben Sie 'SID' und die Sitzungsnummer ein, wenn Sie den KILL-Befehl aufrufen. Dieses Beispiel zeigt eine Liste der aktiven oder im Leerlauf befindlichen Sitzungen an und beendet dann die Sitzung „SID1234“.

Einschränkungen für das Umbenennen von Spalten

Eine Spalte, die für die Tabellenverteilung verwendet wird, kann nicht umbenannt werden. Es können auch keine Spalten in einer externen oder temporären Tabelle umbenannt werden.

Sichten werden nicht aktualisiert

Wenn Sie eine Datenbank umbenennen, werden alle Sichten ungültig, die den vorherigen Datenbanknamen verwenden. Dieses Verhalten gilt für Sichten innerhalb und außerhalb der Datenbank. Wenn z.B. die Sales-Datenbank umbenannt wird, wird eine Sicht ungültig, die SELECT * FROM Sales.dbo.table1 enthält. Sie können dieses Problem beheben, indem Sie entweder keine dreiteiligen Namen in Sichten verwenden oder die Sichten aktualisieren, damit diese auf den neuen Datenbanknamen verweisen.

Beim Umbenennen einer Tabelle werden Sichten nicht auf den neuen Tabellennamen aktualisiert. Jede Sicht (innerhalb oder außerhalb der Datenbank), die auf den vorherigen Tabellennamen verweist, wird ungültig. Zum Beheben dieses Problems können Sie alle Sichten aktualisieren, damit sie auf den neuen Tabellennamen verweisen.

Beim Umbenennen einer Spalte werden Sichten nicht auf den neuen Spaltennamen aktualisiert. Sichten zeigen so lange den alten Spaltennamen an, bis eine ALTER VIEW-Anweisung ausgeführt wird. In bestimmten Fällen können Sichten ungültig werden und müssen gelöscht und neu erstellt werden.

Sperren

Das Umbenennen einer Tabelle erfordert eine gemeinsame Sperre für das DATABASE-Objekt und das SCHEMA-Objekt sowie eine exklusive Sperre für die Tabelle.

Beispiele

A. Umbenennen einer Datenbank

Gilt für: nur Analytics Platform System (PDW)

In diesem Beispiel wird die benutzerdefinierte Datenbank AdWorks in AdWorks2 umbenannt.

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

Beim Umbenennen einer Tabelle werden alle Objekte und Eigenschaften aktualisiert, die der Tabelle zugeordnet sind, damit diese auf den neuen Tabellennamen verweisen. Es werden z.B. Tabellendefinitionen, Indizes, Einschränkungen und Berechtigungen aktualisiert. Sichten werden nicht aktualisiert.

B. Umbenennen einer Tabelle

Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW)

In diesem Beispiel wird die Tabelle Customer in Customer1 umbenannt.

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

RENAME OBJECT mydb.dbo.Customer TO Customer1;

Beim Umbenennen einer Tabelle werden alle Objekte und Eigenschaften aktualisiert, die der Tabelle zugeordnet sind, damit diese auf den neuen Tabellennamen verweisen. Es werden z.B. Tabellendefinitionen, Indizes, Einschränkungen und Berechtigungen aktualisiert. Sichten werden nicht aktualisiert.

C. Verschieben einer Tabelle in ein anderes Schema

Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW)

Wenn Sie beabsichtigen, das Objekt in ein anderes Schema zu verschieben, verwenden Sie ALTER SCHEMA. Durch die folgende Anweisung wird z.B. das Tabellenelement aus dem product-Schema in das dbo-Schema verschoben.

ALTER SCHEMA dbo TRANSFER OBJECT::product.item;

D: Beenden von Sitzungen vor dem Umbenennen einer Tabelle

Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW)

Eine Tabelle kann nicht umbenannt werden, während sie verwendet wird. Das Umbenennen einer Tabelle erfordert eine exklusive Sperre für die Tabelle. Wenn die Tabelle verwendet wird, müssen Sie möglicherweise die Sitzung beenden, die die Tabelle verwendet. Zum Beenden einer Sitzung können Sie den KILL-Befehl nutzen. Verwenden Sie den KILL-Befehl mit Bedacht, da für nicht per Commit festgeschriebene Arbeit ein Rollback ausgeführt wird, wenn eine Sitzung beendet wird. Sitzungen in Azure Synapse Analytics wird das Präfix „SID“ vorangestellt. Sie müssen beim Aufruf des KILL-Befehls „SID“ und die Sitzungsnummer angeben. Dieses Beispiel zeigt eine Liste der aktiven oder im Leerlauf befindlichen Sitzungen an und beendet dann die Sitzung „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. Umbenennen einer Spalte

Gilt für: Analytics Platform System (PDW)

In diesem Beispiel wird die Spalte „FName“ der Tabelle „Customer“ in „FirstName“ umbenannt.

-- Rename the Fname column of the customer table
RENAME OBJECT::Customer COLUMN FName TO FirstName;

RENAME OBJECT mydb.dbo.Customer COLUMN FName TO FirstName;

Nächste Schritte