sp_rename (Transact-SQL)sp_rename (Transact-SQL)

Anwendungsbereich:Applies to: Ja SQL ServerSQL Server (alle unterstützten Versionen)yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL DatabaseAnwendungsbereich:Applies to: Ja SQL ServerSQL Server (alle unterstützten Versionen)yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database

Ändert den Namen eines vom Benutzer erstellten Objekts in der aktuellen Datenbank.Changes the name of a user-created object in the current database. Bei diesem Objekt kann es sich um eine Tabelle, einen Index, eine Spalte, einen Alias Datentyp oder um einen MicrosoftMicrosoft .NET Framework.NET Framework CLR-benutzerdefinierten Typ (Common Language Runtime) handeln.This object can be a table, index, column, alias data type, or MicrosoftMicrosoft .NET Framework.NET Framework common language runtime (CLR) user-defined type.

Achtung

Wenn Sie Teile eines Objektnamens ändern, können Skripts und gespeicherte Prozeduren funktionsunfähig werden.Changing any part of an object name can break scripts and stored procedures. 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.We recommend you do not use this statement to rename stored procedures, triggers, user-defined functions, or views; instead, drop the object and re-create it with the new name.

Symbol für Themenlink Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

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

ArgumenteArguments

[ @objname =] 'object_name'[ @objname = ] 'object_name'
Der aktuelle qualifizierte oder nicht qualifizierte Name des Benutzerobjekts oder Datentyps.Is the current qualified or nonqualified name of the user object or data type. Wenn es sich bei dem umzubenennenden Objekt um eine Spalte in einer Tabelle handelt, muss object_name in der Form Table. Column oder Schema. Table. Columnsein.If the object to be renamed is a column in a table, object_name must be in the form table.column or schema.table.column. Wenn es sich bei dem umzubenennenden Objekt um einen Index handelt, muss object_name in der Form Table. Index oder Schema. Table. Indexsein.If the object to be renamed is an index, object_name must be in the form table.index or schema.table.index. Wenn das umzubenennende Objekt eine Einschränkung ist, muss object_name in der Form Schema. Einschränkungvorliegen.If the object to be renamed is a constraint, object_name must be in the form schema.constraint.

Anführungszeichen sind nur dann notwendig, wenn ein qualifiziertes Objekt angegeben wird.Quotation marks are only necessary if a qualified object is specified. Bei Angabe eines vollqualifizierten Namens, einschließlich eines Datenbanknamens, muss es sich bei dem Datenbanknamen um den Namen der aktuellen Datenbank handeln.If a fully qualified name, including a database name, is provided, the database name must be the name of the current database. object_name ist vom Datentyp nvarchar (776) und hat keinen Standardwert.object_name is nvarchar(776), with no default.

[ @newname =] 'new_name'[ @newname = ] 'new_name'
Der neue Name für das angegebene Objekt.Is the new name for the specified object. new_name muss ein einteilige Name sein und den Regeln für Bezeichner entsprechen.new_name must be a one-part name and must follow the rules for identifiers. NewName ist vom Datentyp vom Datentyp sysnameund hat keinen Standardwert.newname is sysname, with no default.

Hinweis

Namen von Triggern können nicht mit # oder ## beginnen.Trigger names cannot start with # or ##.

[ @objtype =] 'object_type'[ @objtype = ] 'object_type'
Der Typ des Objekts, das umbenannt wird.Is the type of object being renamed. object_type ist vom Datentyp varchar (13) und hat den Standardwert NULL. die folgenden Werte sind möglich:object_type is varchar(13), with a default of NULL, and can be one of these values.

WertValue BESCHREIBUNGDescription
COLUMNCOLUMN Eine umzubenennende Spalte.A column to be renamed.
DATABASEDATABASE Eine benutzerdefinierte Datenbank.A user-defined database. Dieser Objekttyp ist erforderlich, wenn Sie eine Datenbank umbenennen.This object type is required when renaming a database.
INDEXINDEX Ein benutzerdefinierter Index.A user-defined index. Beim Umbenennen eines Indizes mit Statistiken werden die Statistiken auch automatisch umbenannt.Renaming an index with statistics, also automatically renames the statistics.
OBJECTOBJECT Ein Element eines Typs, der in sys. Objectsnachverfolgt wird.An item of a type tracked in sys.objects. Beispielsweise könnte OBJECT zum Umbenennen von Objekten mit Einschränkungen (CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY), Benutzertabellen und Regeln verwendet werden.For example, OBJECT could be used to rename objects including constraints (CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY), user tables, and rules.
STATISTICSSTATISTICS Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höher und Azure SQL-DatenbankAzure SQL Database.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later and Azure SQL-DatenbankAzure SQL Database.

Explizit von einem Benutzer erstellte Statistiken oder implizit mit einem Index erstelltStatistics created explicitly by a user or created implicitly with an index. Beim Umbenennen der Statistiken eines Indizes wird der Index auch automatisch umbenannt.Renaming the statistics of an index automatically renames the index as well.
USERDATATYPEUSERDATATYPE Benutzerdefinierte CLR-Typen , die durch das Ausführen von Create Type oder sp_addtypehinzugefügt werden.A CLR User-defined Types added by executing CREATE TYPE or sp_addtype.

RückgabecodewerteReturn Code Values

0 (Erfolg) oder eine Zahl ungleich Null (Fehler)0 (success) or a nonzero number (failure)

HinweiseRemarks

Sie können Objekte und Datentypen nur in der aktuellen Datenbank umbenennen.You can change the name of an object or data type in the current database only. Die Namen der meisten Systemdatentypen und -objekte können nicht geändert werden.The names of most system data types and system objects cannot be changed.

sp_rename sorgt dafür, dass beim Umbenennen einer PRIMARY KEY- oder UNIQUE-Einschränkung automatisch auch der zugehörige Index umbenannt wird.sp_rename automatically renames the associated index whenever a PRIMARY KEY or UNIQUE constraint is renamed. Wenn ein umbenannter Index an eine PRIMARY KEY-Einschränkung gebunden ist, wird auch die PRIMARY KEY-Einschränkung automatisch von sp_rename umbenannt.If a renamed index is tied to a PRIMARY KEY constraint, the PRIMARY KEY constraint is also automatically renamed by sp_rename.

sp_rename kann zum Umbenennen von primären und sekundären XML-Indizes verwendet werden.sp_rename can be used to rename primary and secondary XML indexes.

Durch das Umbenennen einer gespeicherten Prozedur, einer Funktion, einer Sicht oder eines Auslösers wird der Name des entsprechenden Objekts entweder in der Definitions Spalte der sys. sql_modules -Katalog Sicht oder mithilfe der integrierten Funktion OBJECT_DEFINITION nicht geändert.Renaming a stored procedure, function, view, or trigger will not change the name of the corresponding object either in the definition column of the sys.sql_modules catalog view or obtained using the OBJECT_DEFINITION built-in function. Daher ist es empfehlenswert, sp_rename nicht zum Umbenennen dieser Objekttypen zu verwenden.Therefore, we recommend that sp_rename not be used to rename these object types. Löschen Sie stattdessen das Objekt, und erstellen Sie es neu mit dem neuen Namen.Instead, drop and re-create the object with its new name.

Beim Umbenennen eines Objekts, wie z. B. einer Tabelle oder Spalte, werden Verweise auf das Objekt nicht automatisch umbenannt.Renaming an object such as a table or column will not automatically rename references to that object. Sie müssen Objekte, die auf das umbenannte Objekt verweisen, manuell ändern.You must modify any objects that reference the renamed object manually. 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.For example, if you rename a table column and that column is referenced in a trigger, you must modify the trigger to reflect the new column name. Verwenden Sie sys.sql_expression_dependencies , um Abhängigkeiten vom Objekt aufzulisten, bevor Sie es umbenennen.Use sys.sql_expression_dependencies to list dependencies on the object before renaming it.

BerechtigungenPermissions

Zum Umbenennen von Objekten, Spalten und Indizes ist die ALTER-Berechtigung für das entsprechende Objekt erforderlich.To rename objects, columns, and indexes, requires ALTER permission on the object. Zum Umbenennen von Benutzertypen ist die CONTROL-Berechtigung für den entsprechenden Typ erforderlich.To rename user types, requires CONTROL permission on the type. Zum Umbenennen einer Datenbank ist die Mitgliedschaft in der festen Serverrolle sysadmin oder dbcreator erforderlich.To rename a database, requires membership in the sysadmin or dbcreator fixed server roles

BeispieleExamples

A.A. Umbenennen einer TabelleRenaming a table

Im folgenden Beispiel wird die SalesTerritory -Tabelle im Schema SalesTerr in Sales umbenannt.The following example renames the SalesTerritory table to SalesTerr in the Sales schema.

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

B.B. Umbenennen einer SpalteRenaming a column

Im folgenden Beispiel wird die- TerritoryID Spalte in der-Tabelle in umbenannt SalesTerritory TerrID .The following example renames the TerritoryID column in the SalesTerritory table to TerrID.

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

C.C. Umbenennen eines IndexesRenaming an index

Im folgenden Beispiel wird der IX_ProductVendor_VendorID-Index in IX_VendorID umbenannt.The following example renames the IX_ProductVendor_VendorID index to IX_VendorID.

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

D:D. Umbenennen eines AliasdatentypsRenaming an alias data type

Im folgenden Beispiel wird der Phone-Aliasdatentyp in Telephone umbenannt.The following example renames the Phone alias data type to Telephone.

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

E.E. Umbenennen von EinschränkungenRenaming constraints

In den folgenden Beispielen wird eine PRIMARY KEY-Einschränkung, CHECK-Einschränkung und FOREIGN KEY-Einschränkung umbenannt.The following examples rename a PRIMARY KEY constraint, a CHECK constraint and a FOREIGN KEY constraint. Beim Umbenennen einer Einschränkung muss das Schema angegeben werden, dem die Einschränkung angehört.When renaming a constraint, the schema to which the constraint belongs must be specified.

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.F. Umbenennen von StatistikenRenaming statistics

Im folgenden Beispiel wird ein Statistik Objekt mit dem Namen contactMail1 erstellt. Anschließend wird die Statistik mithilfe von sp_rename in NewContact umbenannt.The following example creates a statistics object named contactMail1 and then renames the statistic to NewContact by using sp_rename. Bei der Umbenennung von Statistiken muss das Objekt im Format schema.table.statistics_name angegeben werden.When renaming statistics, the object must be specified in the format schema.table.statistics_name.

CREATE STATISTICS ContactMail1  
    ON Person.Person (BusinessEntityID, EmailPromotion)  
    WITH SAMPLE 5 PERCENT;  
  
sp_rename 'Person.Person.ContactMail1', 'NewContact','Statistics';  
  

Weitere InformationenSee Also

sys.sql_expression_dependencies (Transact-SQL) sys.sql_expression_dependencies (Transact-SQL)
sys.sql_modules (Transact-SQL) sys.sql_modules (Transact-SQL)
Gespeicherte System Prozeduren (Transact-SQL-) System Stored Procedures (Transact-SQL)
Datenbank-Engine gespeicherter Prozeduren (Transact-SQL-)Database Engine Stored Procedures (Transact-SQL)