type - sql server rename view
Renomear coluna SQL Server 2008 (7)
Como alternativa ao SQL
, você pode fazer isso no Microsoft SQL Server Management Studio. Aqui estão algumas maneiras rápidas de usar a GUI:
Primeiro caminho
Lento, clique duas vezes na coluna. O nome da coluna se tornará uma caixa de texto editável.
Segunda maneira
Clique com o botão direito do mouse na coluna e escolha Renomear no menu de contexto.
Por exemplo:
Terceira maneira
Desta forma, é preferível quando você precisa renomear várias colunas de uma só vez.
- Clique com o botão direito do mouse na tabela que contém a coluna que precisa ser renomeada.
- Clique em Design .
- No painel de design da tabela, clique e edite a caixa de texto do nome da coluna que você deseja alterar.
Por exemplo:
NOTA: Eu sei que o OP pediu especificamente pela solução SQL, achei que isso poderia ajudar os outros :)
Eu estou usando o SQL Server 2008 e Navicat. Eu preciso renomear uma coluna em uma tabela usando SQL.
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
Esta afirmação não funciona.
Como muitas vezes venho aqui e depois me pergunto como usar os colchetes, essa resposta pode ser útil para quem gosta de mim.
EXEC sp_rename '[DB].[dbo].[Tablename].OldColumnName', 'NewColumnName', 'COLUMN';
- O
OldColumnName
não deve estar em[]
. Isso não vai funcionar. - Não coloque
NewColumnName
em[]
, isso resultará em[[NewColumnName]]
.
O Sql Server Management Studio possui alguns Procedimentos Armazenados (SP) de sistema definidos
Um deles é usado para renomear uma coluna. O SP é sp_rename
Sintaxe: sp_rename '[table_name] .old_column_name', 'new_column_name'
Para mais ajuda consulte este artigo: sp_rename pelo Microsoft Docs
Nota: Na execução deste SP, o sql server lhe dará uma mensagem de aviso como ' Cuidado: Alterar qualquer parte do nome de um objeto pode quebrar scripts e procedimentos armazenados '. Isso é crítico somente se você tiver escrito seu próprio sp que envolve a coluna na mesa você está prestes a mudar.
Ou você pode simplesmente clicar duas vezes na coluna do SQL Management Studio e renomeá-la na interface do usuário ...
Use sp_rename
EXEC sp_RENAME 'TableName.OldColumnName' , 'NewColumnName', 'COLUMN'
Consulte: SQL SERVER - Como renomear um nome de coluna ou nome de tabela
Documentação: sp_rename (Transact-SQL)
Para o seu caso, seria:
EXEC sp_RENAME 'table_name.old_name', 'new_name', 'COLUMN'
Lembre-se de usar aspas simples para incluir seus valores.
Versão melhorada do @Taher
DECLARE @SchemaName AS VARCHAR(128)
DECLARE @TableName AS VARCHAR(128)
DECLARE @OldColumnName AS VARCHAR(128)
DECLARE @NewColumnName AS VARCHAR(128)
DECLARE @ParamValue AS VARCHAR(1000)
SET @SchemaName = 'dbo'
SET @TableName = 'tableName'
SET @OldColumnName = 'OldColumnName'
SET @NewColumnName = 'NewColumnName'
SET @ParamValue = @SchemaName + '.' + @TableName + '.' + @OldColumnName
IF EXISTS
(
SELECT 1 FROM sys.columns WHERE name = @OldColumnName AND OBJECT_NAME(object_id) = @TableName
)
AND NOT EXISTS
(
SELECT 1 FROM sys.columns WHERE name = @NewColumnName AND OBJECT_NAME(object_id) = @TableName
)
BEGIN
EXEC sp_rename @ParamValue, @NewColumnName, 'COLUMN';
END
Você também deve especificar o esquema da tabela ou pode receber este erro:
Msg 15248, nível 11, estado 1, procedimento sp_rename, linha 238 O parâmetro @objname é ambíguo ou o @objtype reivindicado (COLUMN) está errado.
Se for um script de implantação, recomendo também adicionar alguma segurança adicional a ele.
if exists (select 1 from sys.columns where name = 'OldColumnName' and object_name(object_id) = 'TableName') AND
not exists (select 1 from sys.columns where name = 'NewColumnName' and object_name(object_id) = 'TableName')
EXEC sp_RENAME 'SchemaName.TableName.OldColumnName', 'NewColumnName', 'COLUMN';