sp_rename (Transact-SQL) (Português)
- 14/10/2020
- 6 minutos para ler
-
- m
- c
- M
- m
- r
-
+5
Aplica-se a: SQL Server (todas as versões com suporte) Banco de dados SQL do Azure Azure Synapse Analytics
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 tipo definido pelo usuário do CLR (common language runtime) do Microsoft .NET Framework.
Observação
Em Azure Synapse Analytics, sp_rename está em visualização e só pode ser usado para renomear uma COLUMN em um objeto de usuário.
Cuidado
Alterar qualquer parte de um objeto O nome pode quebrar scripts e procedimentos armazenados. Recomendamos que você não use esta instrução para renomear procedimentos armazenados, gatilhos, funções definidas pelo usuário ou visualizações; em vez disso, elimine o objeto e recrie-o com o novo nome.
Convenções de sintaxe Transact-SQL
Sintaxe
Argumentos
“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 deve estar no formato tabela.coluna ou esquema.Tabela.coluna. Se o objeto a ser renomeado for um índice, object_name deve estar no formato table.index ou schema.table.index. Se o objeto a ser renomeado for uma restrição, object_name deve estar no formato schema.constraint.
As aspas são necessárias apenas 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 deve ser o nome do banco de dados atual. object_name é nvarchar (776), sem padrão.
“new_name”
É o novo nome do objeto especificado. new_name deve ser um nome de uma parte e deve seguir as regras para identificadores. newname é sysname, sem padrão.
Observação
Nomes de gatilhos não podem começar com # ou ##.
Valor | Descrição |
---|---|
COLUNA | Uma coluna a ser renomeada. |
BANCO DE DADOS | Um banco de dados definido pelo usuário. Este 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. |
OBJETO | 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 e regras. |
ESTATÍSTICAS | 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 | A CLR Tipos definidos pelo usuário adicionados executando CREATE TYPE ou sp_addtype. |
“COLUMN” Aplica-se a: Azure Synapse Analytics
In sp_rename (visualização ) para o Azure Synapse Analytics, COLUMN é um parâmetro obrigatório que especifica que o tipo de objeto a ser renomeado é uma coluna. É um varchar (13) sem valor padrão e deve sempre ser incluído na instrução sp_rename (visualização). Uma coluna só pode ser renomeada se for uma coluna de não distribuição.
Valores de código de retorno
0 (sucesso) ou um número diferente de zero (falha)
Comentários
Aplica-se ao SQL Server (todas as versões com suporte) e ao Banco de Dados SQL do Azure
sp_rename renomeia automaticamente o índice associado sempre que uma restrição PRIMARY KEY ou UNIQUE é renomeada. Se um índice renomeado estiver vinculado a uma restrição PRIMARY KEY, a restrição PRIMARY KEY também será renomeada automaticamente por sp_rename.
Aplica-se ao SQL Server (todas as versões com suporte) e ao Banco de Dados SQL do Azure
sp_rename pode ser usado para renomear índices XML primários e secundários.
Aplica-se ao SQL Server (todas as versões com suporte) e ao Banco de Dados SQL do Azure
Renomear um procedimento armazenado, função, exibição ou gatilho não mudará o nome do correspondente objeto na coluna de definição da exibição do catálogo sys.sql_modules ou obtido usando a função interna OBJECT_DEFINITION. Portanto, recomendamos que sp_rename não seja usado para renomear esses tipos de objeto. Em vez disso, elimine e recrie o objeto com seu novo nome.
Aplica-se ao SQL Server (todas as versões com suporte), Banco de Dados SQL do Azure e Azure Synapse Analytics
Renomeando um objeto, como uma tabela ou coluna não renomeará automaticamente as referências a esse objeto.Você deve modificar quaisquer objetos que façam referência ao objeto renomeado manualmente. Por exemplo, se você renomear uma coluna da tabela e essa coluna for referenciada em um gatilho, deverá modificar o gatilho para refletir o novo nome da coluna. Use sys.sql_expression_dependencies para listar as dependências do objeto antes de renomeá-lo.
Aplica-se ao SQL Server (todas as versões com suporte), Banco de Dados SQL do Azure e Azure Synapse Analytics
Você pode alterar o nome de um objeto ou tipo de dados apenas no banco de dados atual. Os nomes da maioria dos tipos de dados do sistema e objetos do sistema não podem ser alterados.
Permissões
Para renomear objetos, colunas e índices, requer permissão ALTER no objeto. Para renomear tipos de usuário, requer permissão CONTROL no tipo. Para renomear um banco de dados, requer associação nas funções de servidor fixas sysadmin ou dbcreator
Exemplos
A. Renomeando uma tabela
O exemplo a seguir renomeia a tabela SalesTerritory
para SalesTerr
no Sales
esquema.
B. Renomeando uma coluna
O exemplo a seguir renomeia a coluna TerritoryID
na tabela SalesTerritory
para TerrID
.
C. Renomeando um índice
O exemplo a seguir renomeia o índice IX_ProductVendor_VendorID
para IX_VendorID
.
D . Renomeando um tipo de dados de alias
O exemplo a seguir renomeia o Phone
tipo de dados de alias para Telephone
.
E. Renomeando 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.
F. Renomeando estatísticas
O exemplo a seguir cria um objeto de estatísticas denominado contactMail1 e, em seguida, renomeia a estatística para NewContact usando sp_rename. Ao renomear as estatísticas, o objeto deve ser especificado no formato schema.table.statistics_name.
Exemplos: Azure Synapse Analytics
G. Renomeando uma coluna
O exemplo a seguir renomeia a coluna c1
na tabela table1
para col1
.