1

我的 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。

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

4

2 回答 2

2

首先你必须增加你的col5

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

然后UPDATE将您的数据转换为诸如数字之类的东西。也许:

UPDATE Table set col5 = '100' where col5='c'
于 2013-06-26T18:47:24.013 回答
1

更改列 - 不适用于从 varchar 到 int/long/等的类型转换,

  • 您将不得不创建一个新的 int 列
  • 然后将所有现有数据从 col5 复制到新的 int 列
  • 然后从 TABLE2 中删除 col5 列

可能有更聪明的方法。但是,这可以达到我想的目的。

于 2013-06-26T18:35:07.580 回答