UMBENENNUNG (Transact-SQL)

Gilt für:Azure Synapse Analytics

Benennt eine vom Benutzer erstellte Tabelle in Azure Synapse Analytics um.

Dieser Artikel gilt ausschließlich für Azure Synapse Analytics:

  • 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 ALTER DATABASE Anweisung (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
[;]

Argumente

OBJEKT UMBENENNEN [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name ZU new_table_name

Gilt für: Azure Synapse Analytics

Ä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.

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

Die Umbenennung einer Tabelle erfordert eine gemeinsame Sperre für das DATABASE Objekt, eine gemeinsame Sperre für das SCHEMA Objekt und eine exklusive Sperre für die Tabelle.

Beispiele

A. Umbenennen einer Tabelle

Gilt für: Azure Synapse Analytics

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.

B. Verschieben einer Tabelle in ein anderes Schema

Gilt für: Azure Synapse Analytics

Wenn du beabsichtigst, das Objekt in ein anderes Schema zu verschieben, verwende 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;

C. Beenden von Sitzungen vor dem Umbenennen einer Tabelle

Gilt für: Azure Synapse Analytics

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';