sp_rename (Transact-SQL)

 

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)jaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse

Ändert den Namen eines vom Benutzer erstellten Objekts in der aktuellen Datenbank. Dieses Objekt kann eine Tabelle, Index, Spalte Aliasdatentyp oder Microsoft .NET Framework common Language Runtime (CLR) den benutzerdefinierten Typ.

System_CAPS_ICON_caution.jpg Achtung


Wenn Sie Teile eines Objektnamens ändern, können Skripts und gespeicherte Prozeduren funktionsunfähig werden. Es ist empfehlenswert, diese Anweisung nicht zum Umbenennen von gespeicherten Prozeduren, Triggern, benutzerdefinierten Funktionen oder Sichten zu verwenden. Löschen Sie stattdessen das Objekt, und erstellen Sie es neu mit dem neuen Namen.

Gilt für: SQL Server (SQL Server 2008 bis zur aktuellen Version), Azure SQL-Datenbank.

Topic link icon Transact-SQL-Syntaxkonventionen

  
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'   
    [ , [ @objtype = ] 'object_type' ]   

[ @objname = ] 'object_name'
Der aktuelle qualifizierte oder nicht qualifizierte Name des Benutzerobjekts oder Datentyps. Wenn es sich bei das umzubenennenden Objekt um eine Spalte in einer Tabelle ist Object_name muss im Format table.column oder schema.table.column. Wenn es sich bei das umzubenennenden Objekt um einen Index, muss Object_name muss im Format table.index oder schema.table.index. Wenn es sich bei das umzubenennenden Objekt um eine Einschränkung ist Object_name muss im Format schema.constraint.

Anführungszeichen sind nur dann notwendig, wenn ein qualifiziertes Objekt angegeben wird. Bei Angabe eines vollqualifizierten Namens, einschließlich eines Datenbanknamens, muss es sich bei dem Datenbanknamen um den Namen der aktuellen Datenbank handeln. Object_name ist nvarchar(776), hat keinen Standardwert.

[ @newname = ] 'new_name'
Der neue Name für das angegebene Objekt. New_name muss ein einteiliger Name sein und müssen den Regeln für Bezeichner entsprechen. Newname ist Sysname, hat keinen Standardwert.

System_CAPS_ICON_note.jpg Hinweis


Namen von Triggern können nicht mit # oder ## beginnen.

[ @objtype = ] 'object_type'
Der Typ des Objekts, das umbenannt wird. Object_type ist varchar(13), hat den Standardwert NULL und kann einen der folgenden Werte sein.

WertDescription
COLUMNEine umzubenennende Spalte.
DATABASEEine benutzerdefinierte Datenbank. Dieser Objekttyp ist erforderlich, wenn Sie eine Datenbank umbenennen.
INDEXEin benutzerdefinierter Index. Beim Umbenennen eines Indizes mit Statistiken werden die Statistiken auch automatisch umbenannt.
OBJECTEin Element eines Typs in nachverfolgte sys.objects. Beispielsweise könnte OBJECT zum Umbenennen von Objekten mit Einschränkungen (CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY), Benutzertabellen und Regeln verwendet werden.
STATISTICSGilt für: SQL Server 2012 über SQL Server 2016 und Azure SQL-Datenbank.

Explizit von einem Benutzer erstellte Statistiken oder implizit mit einem Index erstellt Beim Umbenennen der Statistiken eines Indizes wird der Index auch automatisch umbenannt.
USERDATATYPEEin CLR-benutzerdefinierte Typen dazu hinzugefügt CREATE TYPE oder Sp_addtype.

0 (Erfolg) oder eine Zahl ungleich Null (Fehler)

Sie können Objekte und Datentypen nur in der aktuellen Datenbank umbenennen. Die Namen der meisten Systemdatentypen und -objekte können nicht geändert werden.

sp_rename sorgt dafür, dass beim Umbenennen einer PRIMARY KEY- oder UNIQUE-Einschränkung automatisch auch der zugehörige Index umbenannt wird. Wenn ein umbenannter Index an eine PRIMARY KEY-Einschränkung gebunden ist, wird auch die PRIMARY KEY-Einschränkung automatisch von sp_rename umbenannt.

sp_rename kann zum Umbenennen von primären und sekundären XML-Indizes verwendet werden.

Umbenennen einer gespeicherten Prozedur, Funktion, Sicht oder Trigger ändert sich nicht auf den Namen des entsprechenden Objektnamens in der definitionsspalte der der sql_modules -Katalogsicht angezeigt. Daher ist es empfehlenswert, sp_rename nicht zum Umbenennen dieser Objekttypen zu verwenden. Löschen Sie stattdessen das Objekt, und erstellen Sie es neu mit dem neuen Namen.

Beim Umbenennen eines Objekts, wie z. B. einer Tabelle oder Spalte, werden Verweise auf das Objekt nicht automatisch umbenannt. Sie müssen Objekte, die auf das umbenannte Objekt verweisen, manuell ändern. Wenn Sie z. B. eine Tabellenspalte umbenennen und in einem Trigger auf diese Spalte verwiesen wird, müssen Sie den Trigger ändern, sodass er den neuen Spaltennamen wiedergibt. VerwendungSys. sql_expression_dependencies für eine Liste der Abhängigkeiten für das Objekt vor dem Umbenennen.

Zum Umbenennen von Objekten, Spalten und Indizes ist die ALTER-Berechtigung für das entsprechende Objekt erforderlich. Zum Umbenennen von Benutzertypen ist die CONTROL-Berechtigung für den entsprechenden Typ erforderlich. Zum Umbenennen einer Datenbank ist die Mitgliedschaft in der festen Serverrolle sysadmin oder dbcreator erforderlich.

A. Umbenennen einer Tabelle

Im folgenden Beispiel wird die SalesTerritory -Tabelle im Schema SalesTerr in Sales umbenannt.

USE AdventureWorks2012;  
GO  
EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';  
GO  

B. Das Umbenennen einer Spalte

Im folgenden Beispiel wird die TerritoryID Spalte in der SalesTerritory Tabelle TerrID.

USE AdventureWorks2012;  
GO  
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';  
GO  

C. Umbenennen eines Indexes

Im folgenden Beispiel wird der IX_ProductVendor_VendorID-Index in IX_VendorID umbenannt.

USE AdventureWorks2012;  
GO  
EXEC sp_rename N'Purchasing.ProductVendor.IX_ProductVendor_VendorID', N'IX_VendorID', N'INDEX';  
GO  

D. Umbenennen eines Aliasdatentyps

Im folgenden Beispiel wird der Phone-Aliasdatentyp in Telephone umbenannt.

USE AdventureWorks2012;  
GO  
EXEC sp_rename N'Phone', N'Telephone', N'USERDATATYPE';  
GO  

E. Umbenennen von Einschränkungen

In den folgenden Beispielen wird eine PRIMARY KEY-Einschränkung, CHECK-Einschränkung und FOREIGN KEY-Einschränkung umbenannt. Beim Umbenennen einer Einschränkung muss das Schema angegeben werden, dem die Einschränkung angehört.

USE AdventureWorks2012;   
GO  
-- Return the current Primary Key, Foreign Key and Check constraints for the Employee table.  
SELECT name, SCHEMA_NAME(schema_id) AS schema_name, type_desc  
FROM sys.objects  
WHERE parent_object_id = (OBJECT_ID('HumanResources.Employee'))   
AND type IN ('C','F', 'PK');   
GO  
  
-- Rename the primary key constraint.  
sp_rename 'HumanResources.PK_Employee_BusinessEntityID', 'PK_EmployeeID';  
GO  
  
-- Rename a check constraint.  
sp_rename 'HumanResources.CK_Employee_BirthDate', 'CK_BirthDate';  
GO  
  
-- Rename a foreign key constraint.  
sp_rename 'HumanResources.FK_Employee_Person_BusinessEntityID', 'FK_EmployeeID';  
  
-- Return the current Primary Key, Foreign Key and Check constraints for the Employee table.  
SELECT name, SCHEMA_NAME(schema_id) AS schema_name, type_desc  
FROM sys.objects  
WHERE parent_object_id = (OBJECT_ID('HumanResources.Employee'))   
AND type IN ('C','F', 'PK');  
  

  
name                                  schema_name        type_desc  
------------------------------------- ------------------ ----------------------  
FK_Employee_Person_BusinessEntityID   HumanResources     FOREIGN_KEY_CONSTRAINT  
PK_Employee_BusinessEntityID          HumanResources     PRIMARY_KEY_CONSTRAINT  
CK_Employee_BirthDate                 HumanResources     CHECK_CONSTRAINT  
CK_Employee_MaritalStatus             HumanResources     CHECK_CONSTRAINT  
CK_Employee_HireDate                  HumanResources     CHECK_CONSTRAINT  
CK_Employee_Gender                    HumanResources     CHECK_CONSTRAINT  
CK_Employee_VacationHours             HumanResources     CHECK_CONSTRAINT  
CK_Employee_SickLeaveHours            HumanResources     CHECK_CONSTRAINT  
  
(7 row(s) affected)  
  
name                                  schema_name        type_desc  
------------------------------------- ------------------ ----------------------  
FK_Employee_ID                        HumanResources     FOREIGN_KEY_CONSTRAINT  
PK_Employee_ID                        HumanResources     PRIMARY_KEY_CONSTRAINT  
CK_BirthDate                          HumanResources     CHECK_CONSTRAINT  
CK_Employee_MaritalStatus             HumanResources     CHECK_CONSTRAINT  
CK_Employee_HireDate                  HumanResources     CHECK_CONSTRAINT  
CK_Employee_Gender                    HumanResources     CHECK_CONSTRAINT  
CK_Employee_VacationHours             HumanResources     CHECK_CONSTRAINT  
CK_Employee_SickLeaveHours            HumanResources     CHECK_CONSTRAINT  
  
(7 row(s) affected)  
  

F. Umbenennen von Statistiken

Im folgenden Beispiel erstellt eine Statistik-Objekt, das mit dem Namen contactMail1 und klicken Sie dann die Statistik zu NewContact mithilfe von "Sp_rename" umbenannt. Bei der Umbenennung von Statistiken muss das Objekt im Format schema.table.statistics_name angegeben werden.

Applies to: SQL Server (SQL Server 2012 through SQL Server 2016, Azure SQL-Datenbank).
CREATE STATISTICS ContactMail1  
    ON Person.Person (BusinessEntityID, EmailPromotion)  
    WITH SAMPLE 5 PERCENT;  
  
sp_rename 'Person.Person.ContactMail1', 'NewContact','Statistics';  
  

Sys. sql_expression_dependencies (Transact-SQL)
Sys. sql_modules (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)
Gespeicherte Datenbankmodulprozeduren (Transact-SQL)

Community-Beiträge

HINZUFÜGEN
Anzeigen: