SQL将列数据类型从nvarchar更改为int

Moh*_*ain 13 sql-server alter-table type-conversion

可以将字段的数据类型从nvarchar更改为int吗?

alter table employee alter column designation int
Run Code Online (Sandbox Code Playgroud)

这有效吗?如果不能以其他方式完成?

PS:我正在使用 MS SQL Server

dca*_*ell 17

你可以尝试做一个alter table.如果失败,请执行此操作:

  1. 创建一个整数的新列:

ALTER TABLE tableName ADD newCol int;

  1. 选择旧列中的数据到新列:

UPDATE tableName SET newCol = CAST(oldCol AS int)

  1. 放下旧栏目


S. *_*wat 10

仅当列没有值或空白时才可能.如果您的列具有某个具有nvarchar值的值,并且您应该尝试将其转换为int,则会出错.

ALTER TABLE [table_name] ALTER COLUMN [column_name] [data_type]
Run Code Online (Sandbox Code Playgroud)


Ale*_*ndr 5

  1. 添加新的数字列.
  2. 使用修剪和转换从旧char列复制到新列.
  3. 删除旧的char列.
  4. 将数字列重命名为旧列名称.

这对我有用(带小数但我想它可以使用整数):

alter table MyTable add MyColNum decimal(15,2) null
go
update MyTable set MyColNum=CONVERT(decimal(15,2), REPLACE(LTRIM(RTRIM(MyOldCol)), ',', '.')) where ISNUMERIC(MyOldCol)=1
go
alter table MyTable drop column MyOldCol
go
EXEC sp_rename 'MyTable.MyColNum', 'MyOldCol', 'COLUMN'
go
Run Code Online (Sandbox Code Playgroud)