2013-06-26 7 views
1

J'ai une table dans ma base de données SQL Server.Comment changer le type de données d'une colonne contenant des données dans le serveur sql?

CREATE TABLE [dbo].[Table2]([col3] [varchar](50) NULL, [col4] [varchar](50) NULL, [col5] [char](1) NULL) 

les données suivantes est la table:

col3 col4 col5 
sad  asdf c 
df  sdfg b 

Maintenant, je veux changer le type de données 'Col5' à INT. Essayé ceci:

alter table [dbo].[TABLE2] alter column [col5] int null; 

Rencontrés cette erreur:

Conversion failed when converting the varchar value 'c' to data type int. 
The statement has been terminated. 

Après avoir modifié le type de données à INT - Je veux changer 'c' à 100 et 'b' à 101.

Comment Je change le type de données et les données? S'il te plait, oriente moi dans la bonne direction.

Répondre

2

Tout d'abord vous devez augmenter votre col5:

alter table [dbo].[TABLE2] alter column [col5] varchar(10) null; 

Ensuite UPDATE vos données à quelque chose comme les numéros. Peut-être:

UPDATE Table set col5 = '100' where col5='c' 
+0

Cela fait exactement ce que je cherchais. Je vous remercie. – user811433

1

colonne Alter - ne fonctionnerait pas pour les conversions de type de varchar int/long/etc,

  • Vous devrez créer une nouvelle colonne int
  • copie toutes les données existantes de Col5. à la nouvelle colonne int
  • puis supprimez la colonne Col5 de TABLEAU2

Il pourrait y avoir des moyens plus intelligents. Cependant, cela sert le but je suppose.

Questions connexes