Como alterar o tipo de dados de uma coluna sem deixar cair a coluna com a consulta?

Tenho uma coluna que tem um tipo de dados : datetime. Mas agora quero convertê-lo para datatype varchar. Posso alterar o tipo de dados sem deixar cair a coluna? Em caso afirmativo, explicar como?

 50
Author: Kalpana Thakur, 2009-01-03

14 answers

Se a ALTER COLUMN não funcionar.

Não é incomum para alterar coluna falhar porque não pode fazer a transformação que você deseja. Neste caso, a solução é criar uma tabela fictícia TableName_tmp, copiar os dados com a sua transformação especializada no comando bulk Insert, largar a tabela original, e mudar o nome da tabela tmp para o nome da tabela original. Você vai ter que cair e recriar as restrições chave estrangeiras e, para o desempenho, você provavelmente vai querer para criar chaves depois de preencher a tabela tmp.

parece-te muito trabalho?Na verdade, não é.

Se está a usar o servidor SQL, pode fazer com que o estúdio de gestão de servidores SQL faça o trabalho por si!

Mostre a estrutura da sua tabela (carregue com o botão direito na tabela e seleccione "Modificar") e faça todas as suas alterações (se a transformação da coluna for ilegal, basta adicionar a sua nova coluna-irá remendá - la num momento). Em seguida, clique com o botão direito no fundo da janela Modificar e seleccione " gerar um programa de mudança."Na janela que aparece, você pode copiar o script de mudança para a área de transferência.

Cancele a modificação (irá querer testar o seu programa, afinal de contas) e depois cole o programa numa nova janela de pesquisa. Modificar conforme necessário (por exemplo, adicionar a sua transformação ao remover o campo da declaração da tabela tmp) e agora você tem o script necessário para fazer a sua transformação.

 25
Author: Mark Brittingham, 2009-01-03 13:54:45

MSDN diz

ALTER TABLE mytable ALTER COLUMN mycolumn newtype

Cuidado com as limitações da cláusula de alteração constante do artigo

 84
Author: devio, 2009-01-03 10:55:51
ALTER TABLE [table name] MODIFY COLUMN [column name] datatype
 10
Author: Pratyay, 2013-11-12 11:31:20
ALTER TABLE YourTableNameHere ALTER COLUMN YourColumnNameHere VARCHAR(20)
 9
Author: capotej, 2013-05-30 07:02:16
ALTER TABLE YourTableNameHere ALTER COLUMN YourColumnNameHere VARCHAR(20)
 7
Author: Leon Tayson, 2013-05-30 07:01:57
É simples! basta escrever a pesquisa de bellow

Alterar o table_ nome_ tabela alterar o tipo de dados da coluna column_ nome

alter table Message alter column message nvarchar(1024);

Vai funcionar. programação feliz
 6
Author: SiwachGaurav, 2013-12-06 12:37:38

Com o SQL server 2008 e mais, usando esta consulta:

ALTER TABLE [RecipeInventorys] ALTER COLUMN [RecipeName] varchar(550)
 5
Author: duc14s, 2012-06-22 07:07:26

Este trabalho para o postgresql 9.0.3

 alter table [table name] ALTER COLUMN [column name] TYPE [character varying];

Http://www.postgresql.org/docs/8.0/static/sql-altertable.html

 2
Author: atrichkov, 2013-09-26 08:05:46
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)
 1
Author: Syed Baqar Hassan, 2012-03-22 08:12:26

Altere a tabela o seu nome deve alterar a coluna o seu nome deve ser VARCHAR(20) isto é perfeito para mudar para datatype

 1
Author: user2650031, 2013-08-04 07:41:51

ORACLE-Alter table_name modify (column_ name new_ datatype);

 0
Author: Mitra Vinda, 2014-01-06 15:23:40
ALTER TABLE table_name
MODIFY (column_name data_type);
 -1
Author: faisal khan, 2014-02-19 21:14:14
ALTER tablename MODIFY columnName newColumnType

Não sei como irá lidar com a mudança do datetime para o varchar, por isso poderá ter de mudar o nome da coluna, adicionar uma nova com o nome antigo e o tipo de dados correcto (varchar) e, em seguida, escrever uma consulta de actualização para preencher a nova coluna do antigo.

Http://www.1keydata.com/sql/sql-alter-table.html

 -2
Author: Jesse Pepper, 2013-05-30 07:02:34
alter table [table name] remove [present column name] to [new column name.
 -4
Author: ATUL KARMAKAR, 2013-08-15 19:22:41