如何更改包含sql server中数据的列的数据类型?

时间:2013-06-26 17:48:47

标签: sql-server type-conversion

我的SQL Server数据库中有一个表。

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

以下是表格中的数据:

col3    col4    col5
sad     asdf    c
df      sdfg    b

现在我想将'col5'的数据类型更改为INT。试过这个:

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

遇到此错误:

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

将数据类型更改为INT后 - 我想将“c”更改为100,将“b”更改为101.

如何更改数据类型和数据?请指出我正确的方向。

2 个答案:

答案 0 :(得分:2)

首先,您必须增加col5

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

然后UPDATE将您的数据转换为数字等内容。也许:

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

答案 1 :(得分:1)

更改列 - 不适用于从varchar到int / long / etc。,

的类型转换
  • 您必须创建一个新的int列
  • 然后将所有现有数据从col5复制到新的int列
  • 然后从TABLE2中删除col5列

可能有更聪明的方法。但是,这符合我的目的。