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

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Altera o nome de um objeto criado pelo usuário no banco de dados atual.Changes the name of a user-created object in the current database. Esse objeto pode ser uma tabela, índice, coluna, dados de tipo de alias, ou MicrosoftMicrosoft .NET Framework.NET Framework definida pelo usuário tipo do common language runtime (CLR).This object can be a table, index, column, alias data type, or MicrosoftMicrosoft .NET Framework.NET Framework common language runtime (CLR) user-defined type.

Cuidado

A alteração de qualquer parte de um nome de objeto pode quebrar scripts e procedimentos armazenados.Changing any part of an object name can break scripts and stored procedures. É recomendável não usar essa instrução para renomear procedimentos armazenados, gatilhos, funções definidas pelo usuário ou exibições; em vez disso, descarte o objeto e recrie-o com o novo nome.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.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

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

ArgumentosArguments

[ @objname =] 'object_name'[ @objname = ] 'object_name'
É o nome atual qualificado ou não qualificado do objeto do usuário ou do tipo de dados.Is the current qualified or nonqualified name of the user object or data type. Se o objeto a ser renomeado for uma coluna em uma tabela object_name deve estar no formato tabela ou schema.table.column.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. Se o objeto a ser renomeado for um índice object_name deve estar no formato index ou schema.table.index.If the object to be renamed is an index, object_name must be in the form table.index or schema.table.index. Se o objeto a ser renomeado for uma restrição object_name deve estar no formato schema.constraint.If the object to be renamed is a constraint, object_name must be in the form schema.constraint.

As aspas serão necessárias apenas se um objeto qualificado estiver especificado.Quotation marks are only necessary if a qualified object is specified. Se um nome completamente qualificado, incluindo um nome de banco de dados, for fornecido, o nome do banco de dados deverá ser o nome do banco de dados atual.If a fully qualified name, including a database name, is provided, the database name must be the name of the current database. object_name está nvarchar(776) , sem padrão.object_name is nvarchar(776), with no default.

[ @newname = ] 'new_name'[ @newname = ] 'new_name'
É o novo nome do objeto especificado.Is the new name for the specified object. new_name deve ser um nome de uma parte e devem seguir as regras para identificadores.new_name must be a one-part name and must follow the rules for identifiers. newname está sysname, sem padrão.newname is sysname, with no default.

Observação

Os nomes de gatilhos não podem começar com # ou ##.Trigger names cannot start with # or ##.

[ @objtype =] 'object_type'[ @objtype = ] 'object_type'
É o tipo do objeto que está sendo renomeado.Is the type of object being renamed. object_type está varchar(13) , com um padrão de NULL, e pode ser um destes valores.object_type is varchar(13), with a default of NULL, and can be one of these values.

ValorValue DescriçãoDescription
COLUMNCOLUMN Uma coluna a ser renomeada.A column to be renamed.
DATABASEDATABASE Um banco de dados definido pelo usuário.A user-defined database. Esse tipo de objeto é necessário quando um banco de dados é renomeado.This object type is required when renaming a database.
INDEXINDEX Um índice definido pelo usuário.A user-defined index. Renomear um índice com estatísticas automaticamente também renomeia as estatísticas.Renaming an index with statistics, also automatically renames the statistics.
OBJECTOBJECT Um item de um tipo controlado no sys. Objects.An item of a type tracked in sys.objects. Por exemplo, OBJECT pode ser usado para renomear objetos, inclusive restrições (CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY), tabelas de usuário e regras.For example, OBJECT could be used to rename objects including constraints (CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY), user tables, and rules.
STATISTICSSTATISTICS Aplica-se a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL Server 2017SQL Server 2017 e Banco de dados SQL do AzureAzure SQL Database.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017 and Banco de dados SQL do AzureAzure SQL Database.

As estatísticas criadas explicitamente por um usuário ou criadas implicitamente com um índice.Statistics created explicitly by a user or created implicitly with an index. Renomear as estatísticas de um índice automaticamente também renomeia o índice.Renaming the statistics of an index automatically renames the index as well.
USERDATATYPEUSERDATATYPE Um tipos definidos pelo usuário CLR adicionado pela execução CREATE TYPE ou sp_addtype.A CLR User-defined Types added by executing CREATE TYPE or sp_addtype.

Valores do código de retornoReturn Code Values

0 (êxito) ou um número diferente de zero (falha)0 (success) or a nonzero number (failure)

ComentáriosRemarks

Você só pode alterar o nome de um objeto ou tipo de dados no banco de dados atual.You can change the name of an object or data type in the current database only. Os nomes da maioria dos tipos de dados do sistema e objetos do sistema não podem ser alterados.The names of most system data types and system objects cannot be changed.

sp_rename renomeia automaticamente o índice associado sempre que uma restrição PRIMARY KEY ou UNIQUE é renomeada.sp_rename automatically renames the associated index whenever a PRIMARY KEY or UNIQUE constraint is renamed. Se um índice renomeado for vinculado a uma restrição PRIMARY KEY, a restrição PRIMARY KEY também será renomeada automaticamente através de sp_rename.If a renamed index is tied to a PRIMARY KEY constraint, the PRIMARY KEY constraint is also automatically renamed by sp_rename.

sp_rename pode ser usado para renomear índices XML primários e secundários.sp_rename can be used to rename primary and secondary XML indexes.

Renomear um procedimento armazenado, função, exibição ou gatilho não alterará o nome do objeto correspondente na coluna de definição dos sys. sql_modules exibição de catálogo ou obtidos usando o Object _ DEFINIÇÃO função interna.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. Portanto, é recomendável que sp_rename não seja usado para renomear esses tipos de objetos.Therefore, we recommend that sp_rename not be used to rename these object types. Em vez disso, cancele e recrie o objeto com o nome novo.Instead, drop and re-create the object with its new name.

A renomeação de um objeto, como uma tabela ou coluna, não renomeará automaticamente as referências a esse objeto.Renaming an object such as a table or column will not automatically rename references to that object. É necessário modificar manualmente todos os objetos que fazem referência ao objeto renomeado.You must modify any objects that reference the renamed object manually. Por exemplo, se você renomear uma coluna de tabela e aquela coluna for referenciada em um gatilho, será necessário modificar o gatilho para que ele reflita o nome novo da coluna.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. Use sys.sql_expression_dependencies para listar as dependências do objeto antes de renomeá-lo.Use sys.sql_expression_dependencies to list dependencies on the object before renaming it.

PermissõesPermissions

Para renomear objetos, colunas e índices, a permissão ALTER é necessária no objeto.To rename objects, columns, and indexes, requires ALTER permission on the object. Para renomear tipos de usuário, a permissão CONTROL é necessária no tipo.To rename user types, requires CONTROL permission on the type. Para renomear um banco de dados, a associação é necessária nas funções de servidor fixas sysadmin ou dbcreator.To rename a database, requires membership in the sysadmin or dbcreator fixed server roles

ExemplosExamples

A.A. Renomeando uma tabelaRenaming a table

O exemplo a seguir renomeia a tabela SalesTerritory como SalesTerr no esquema Sales .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. Renomeando uma colunaRenaming a column

O exemplo a seguir renomeia o TerritoryID coluna o SalesTerritory de tabela para 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. Renomeando um índiceRenaming an index

O exemplo a seguir renomeia o índice IX_ProductVendor_VendorID como IX_VendorID.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. Renomeando um tipo de dados de aliasRenaming an alias data type

O exemplo a seguir renomeia o tipo de dados de alias Phone como Telephone.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. Renomeando restriçõesRenaming constraints

Os exemplos a seguir renomeiam uma restrição PRIMARY KEY, uma restrição CHECK e uma restrição FOREIGN KEY.The following examples rename a PRIMARY KEY constraint, a CHECK constraint and a FOREIGN KEY constraint. Ao renomear uma restrição, o esquema ao qual ela pertence deve ser especificado.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. Renomeando estatísticasRenaming statistics

O exemplo a seguir cria um objeto de estatísticas chamado contactMail1 e renomeia a estatística para NewContact usando sp_rename.The following example creates a statistics object named contactMail1 and then renames the statistic to NewContact by using sp_rename. Ao renomear estatísticas, o objeto deve ser especificado no formato schema.table.statistics_name.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';  
  

Consulte tambémSee Also

sys.sql_expression_dependencies (Transact-SQL) sys.sql_expression_dependencies (Transact-SQL)
sys.sql_modules (Transact-SQL) sys.sql_modules (Transact-SQL)
Procedimentos armazenados do sistema (Transact-SQL) System Stored Procedures (Transact-SQL)
Procedimentos armazenados do mecanismo de banco de dados (Transact-SQL)Database Engine Stored Procedures (Transact-SQL)