Pergunta

Se eu quiser simplesmente mudar o nome de uma coluna (não alterar o seu tipo ou restrições, apenas seu nome) em um banco de dados SQL usando o SQL, como posso fazer isso? Ou não é possível?

Isto é para qualquer banco de dados que afirmam apoiar SQL, eu estou simplesmente olhando para uma consulta específica de SQL que irá funcionar independentemente da implementação de banco de dados real.

Foi útil?

Solução

No PostgreSQL (e muitos outros RDBMS), você pode fazê-lo com a declaração ALTER TABLE regulares:

=> SELECT * FROM Test1;
 id | foo | bar 
----+-----+-----
  2 |   1 |   2

=> ALTER TABLE Test1 RENAME COLUMN foo TO baz;
ALTER TABLE

=> SELECT * FROM Test1;
 id | baz | bar 
----+-----+-----
  2 |   1 |   2

Outras dicas

Especificamente para SQL Server, uso sp_rename

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

Em MySQL, a sintaxe é ALTER TABLE ... CHANGE :

ALTER TABLE <table_name> CHANGE <column_name> <new_column_name> <data_type> ...

Note que você não pode simplesmente mudar o nome e deixar o tipo e restrições como é; você deve digitar novamente o tipo de dados e restrições após o novo nome da coluna.

Eu acho que esta é a maneira mais fácil de mudança de nome de coluna.

SP_RENAME 'TABLE_NAME.OLD_COLUMN_NAME','NEW_COLUMN_NAME'

Infelizmente, para uma solução independente de banco de dados, você precisa saber tudo sobre a coluna. Se ele é usado em outras tabelas como uma chave estrangeira, ele terá que ser modificado também.

ALTER TABLE MyTable ADD MyNewColumn OLD_COLUMN_TYPE;
UPDATE MyTable SET MyNewColumn = MyOldColumn;
-- add all necessary triggers and constraints to the new column...
-- update all foreign key usages to point to the new column...
ALTER TABLE MyTable DROP COLUMN MyOldColumn;

Para o muito mais simples dos casos (sem restrições, triggers, índices ou chaves), levará o acima de 3 linhas. Para qualquer coisa mais complicada que pode ficar muito confuso como você preencher as partes ausentes.

No entanto, como mencionado acima, existem mais simples métodos específicos de banco de dados se você sabe qual banco de dados, é necessário modificar antes do tempo.

Em Informix, você pode usar:

RENAME COLUMN TableName.OldName TO NewName;

Esta foi implementada antes do padrão SQL abordou a questão - se é que é abordada no padrão SQL. Minha cópia do SQL 9075: 2003 não mostrá-lo como sendo um padrão (entre outras coisas, RENAME não é uma das palavras-chave). Eu não sei se é realmente em SQL 9075:. 2008

no servidor SQL que você pode usar

exec sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'

ou

sp_rename '<TableName.OldColumnName>','<NewColumnName>','COLUMN'

Você pode usar o seguinte comando para mudar o nome da coluna de qualquer tabela no SQL Server:

exec sp_rename 'TableName.OldColumnName', 'New colunmName'

ALTER TABLE é SQL padrão. Mas ele não está completamente implementada em muitos sistemas de banco de dados.

O padrão seria ALTER TABLE, mas isso não é necessariamente suportado por todos os DBMS é provável que você encontro, por isso, se você está procurando uma sintaxe abrangente, você pode estar fora de sorte.

Como alternativa para SQL, você pode fazer isso no Microsoft SQL Server Management Studio, da mesa Design Painel.

Primeiro Way

duplo clique lento na coluna. O nome da coluna se tornará uma caixa de texto editável.

Segundo Way

SqlManagement Estúdio >> Banco de Dados >> tabelas >> specificTable >> Coluna Pasta >> clique direito sobre coluna >> Reman

Third Way

Table >> RightClick >> Design

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top