Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
se aplica a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Azure Synapse Analytics
ponto de extremidade Analítica SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Altera o nome de um objeto criado pelo usuário no banco de dados atual. Este objeto pode ser uma tabela, índice, coluna, tipo de dados de alias ou Microsoft
Tipo definido pelo usuário do CLR (Common Language Runtime) do .NET Framework.
Importante
Alguns objetos do sistema e sintaxe Transact-SQL não têm suporte em pools SQL sem servidor no Azure Synapse Analytics, incluindo este artigo. Para obter mais informações, visite Suporte a T-SQL.
Atenção
Alterar qualquer parte do nome de um objeto pode interromper scripts e procedimentos armazenados. Recomendamos que você não use essa instrução para renomear procedimentos armazenados, gatilhos, funções definidas pelo usuário ou exibições; Em vez disso, solte o objeto e recrie-o com o novo nome.
Transact-SQL convenções de sintaxe
Sintaxe
Sintaxe para sp_rename no SQL Server e no Banco de Dados SQL do Azure:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
Sintaxe para sp_rename (visualização) no Azure Synapse Analytics:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
, [ @objtype = ] 'COLUMN'
Sintaxe para sp_rename no Microsoft Fabric:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'OBJECT' ]
Argumentos
@objname [ = ] «object_name»
O nome qualificado ou não qualificado atual do objeto de usuário ou tipo de dados. Se o objeto a ser renomeado for uma coluna em uma tabela, object_name deverá estar no formato table.column ou schema.table.column. Se o objeto a ser renomeado for um índice, object_name deverá estar no formato table.index ou schema.table.index. Se o objeto a ser renomeado for uma restrição, object_name deverá estar no formato schema.constraint.
As aspas só são necessárias se um objeto qualificado for especificado. Se um nome totalmente 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. object_name é nvarchar(776), sem padrão.
@newname [ = ] «new_name»
O novo nome para o objeto especificado. new_name deve ser um nome de uma parte e deve seguir as regras para identificadores. newname é sysname, sem padrão.
Os nomes dos gatilhos não podem começar com # ou ##.
Aplica-se a Armazém no Microsoft Fabric:
- Os nomes de esquema não podem conter
/ou\terminar com um.arquivo . - Os nomes de tabela não podem conter
/ou\terminar com um.arquivo .
@objtype [ = ] «object_type»
O tipo de objeto que está sendo renomeado.
object_type é varchar(13), com um padrão de NULL, e pode ser um desses valores.
| Valor | Descrição |
|---|---|
COLUMN |
Uma coluna a ser renomeada. |
DATABASE |
Um banco de dados definido pelo usuário. Esse tipo de objeto é necessário ao renomear um banco de dados. |
INDEX |
Um índice definido pelo usuário. Renomear um índice com estatísticas, também renomeia automaticamente as estatísticas. |
OBJECT |
Um item de um tipo rastreado em sys.objects. Por exemplo, OBJECT pode ser usado para renomear objetos, incluindo restrições (CHECK, FOREIGN KEY, PRIMARY / UNIQUE KEY), tabelas de usuário, colunas, procedimentos armazenados, funções com valor de tabela embutido, funções com valor de tabela e regras. |
STATISTICS |
Aplica-se a: SQL Server 2012 (11.x) e posterior e Banco de Dados SQL do Azure. Estatísticas criadas explicitamente por um usuário ou criadas implicitamente com um índice. Renomear as estatísticas de um índice também renomeia automaticamente o índice. |
USERDATATYPE |
Um tipo CLR definido pelo usuário adicionado executando CREATE TYPE ou sp_addtype. |
Aplica-se ao: Azure Synapse Analytics
- Em
sp_rename(visualização) para o Azure Synapse Analytics,COLUMNé um valor obrigatório que especifica que o tipo de objeto a ser renomeado é uma coluna e deve sempre ser incluído nasp_renameinstrução. Uma coluna só pode ser renomeada se não for uma coluna de distribuição.sp_renamesó pode ser usado para renomear umCOLUMNem um objeto de usuário.
Aplica-se a: Microsoft Fabric
- Para
sp_renameo Warehouse no Microsoft Fabric,OBJECTé o único valor suportado para @objtype. - No
sp_renameponto de extremidade de análise SQL no Microsoft Fabric,OBJECTé o único valor com suporte para @objtype. Tabelas e colunas não podem ser renomeadas.
Valores de código de retorno
0 (sucesso) ou um número diferente de zero (falha).
Observações
Aplica-se a SQL Server (todas as versões suportadas) e Base de Dados SQL do Azure:
sp_renamerenomeia automaticamente o índice associado sempre que uma restrição de CHAVE PRIMÁRIA ou EXCLUSIVA é renomeada. Se um índice renomeado estiver vinculado a uma restrição de CHAVE PRIMÁRIA, a restrição de CHAVE PRIMÁRIA também será renomeada automaticamente porsp_rename.sp_renamepode ser usado para renomear índices XML primários e secundários.Renomear um procedimento armazenado, função, exibição ou gatilho não alterará o nome do objeto correspondente na coluna de definição da exibição de catálogo do sys.sql_modules ou obtido usando a função interna OBJECT_DEFINITION . Portanto, recomendamos que
sp_renamenão seja usado para renomear esses tipos de objeto. Em vez disso, solte e recrie o objeto com seu novo nome.
Aplica-se a SQL Server (todas as versões suportadas), Banco de Dados SQL do Azure e Azure Synapse Analytics:
Renomear um objeto, como uma tabela ou coluna, não renomeará automaticamente as referências a esse objeto. Você deve modificar todos os objetos que fazem referência ao objeto renomeado manualmente. Por exemplo, se você renomear uma coluna de tabela e essa coluna for referenciada em um gatilho, deverá modificá-lo para refletir o nome da nova coluna. Use sys.sql_expression_dependencies para listar dependências no objeto antes de renomeá-lo.
Renomear uma coluna não atualiza automaticamente os metadados de quaisquer objetos que SELECIONAM todas as colunas (usando o
*) dessa tabela. Por exemplo, se você renomear uma coluna de tabela e essa coluna for referenciada por uma exibição ou função não vinculada ao esquema que SELECIONA todas as colunas (usando o*), os metadados da exibição ou função continuarão a refletir o nome da coluna original. Atualize os metadados usando sp_refreshsqlmodule ou sp_refreshview.Você pode alterar o nome de um objeto ou tipo de dados somente no banco de dados atual. Os nomes da maioria dos tipos de dados do sistema e objetos do sistema não podem ser alterados.
Se você usar mais de 128 caracteres para o novo nome, apenas os primeiros 128 caracteres serão usados e o restante será truncado.
Aplica-se a Azure Synapse Analytics:
- No Azure Synapse Analytics,
sp_renameestá em Pré-visualização para pools SQL dedicados.
Permissões
Para renomear objetos, colunas e índices, requer a permissão ALTER no objeto. Para renomear tipos de usuário, requer a permissão CONTROL no tipo. Para renomear um banco de dados, requer associação às funções de servidor fixas sysadmin ou dbcreator . Para renomear uma tabela contábil, é necessária a permissão ALTER LEDGER.
Exemplos
Um. Renomear uma tabela
O exemplo a seguir renomeia a tabela SalesTerritory para SalesTerr no esquema Sales.
USE AdventureWorks2022;
GO
EXECUTE sp_rename 'Sales.SalesTerritory', 'SalesTerr';
GO
B. Renomear uma coluna
O exemplo a seguir renomeia a TerritoryID coluna na SalesTerritory tabela para TerrID.
USE AdventureWorks2022;
GO
EXECUTE sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO
C. Renomear um índice
O exemplo a seguir renomeia o IX_ProductVendor_VendorID índice para IX_VendorID.
USE AdventureWorks2022;
GO
EXECUTE sp_rename N'Purchasing.ProductVendor.IX_ProductVendor_VendorID', N'IX_VendorID', N'INDEX';
GO
D. Renomear um tipo de dados de alias
O exemplo a seguir renomeia o tipo de Phone dados alias para Telephone.
USE AdventureWorks2022;
GO
EXECUTE sp_rename N'Phone', N'Telephone', N'USERDATATYPE';
GO
E. Renomear restrições
Os exemplos a seguir renomeiam uma restrição PRIMARY KEY, uma restrição CHECK e uma restrição FOREIGN KEY. Ao renomear uma restrição, o esquema ao qual a restrição pertence deve ser especificado.
USE AdventureWorks2022;
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.
EXECUTE sp_rename 'HumanResources.PK_Employee_BusinessEntityID', 'PK_EmployeeID';
GO
-- Rename a check constraint.
EXECUTE sp_rename 'HumanResources.CK_Employee_BirthDate', 'CK_BirthDate';
GO
-- Rename a foreign key constraint.
EXECUTE 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');
GO
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. Renomear estatísticas
O exemplo a seguir cria um objeto statistics chamado contactMail1 e, em seguida, renomeia a estatística para NewContact usando sp_rename. Quando você renomeia estatísticas, o objeto deve ser especificado no formato 'schema.table.statistics_name''.
CREATE STATISTICS ContactMail1
ON Person.Person(BusinessEntityID, EmailPromotion)
WITH SAMPLE 5 PERCENT;
EXECUTE sp_rename 'Person.Person.ContactMail1', 'NewContact', 'Statistics';
Exemplos: Azure Synapse Analytics
G. Renomear uma coluna
O exemplo a seguir renomeia a c1 coluna na table1 tabela para col1.
Observação
Esse recurso do Azure Synapse Analytics ainda está em visualização para pools SQL dedicados e atualmente está disponível apenas para objetos no dbo esquema.
CREATE TABLE table1 (c1 INT, c2 INT);
EXECUTE sp_rename 'table1.c1', 'col1', 'COLUMN';
GO
H. Renomear um objeto
O exemplo a seguir renomeia a tabela dbo.table1 para dbo.table2, usando o OBJECT tipo.
EXECUTE sp_rename
@objname = 'dbo.table1',
@newname = 'table2',
@objtype = 'OBJECT';