1

当数据库表在 SQL 中有记录时,我们可以更改属性的数据类型吗?

我正在使用 Microsoft Management Studio 2008。我得到的错误是:** 将数据类型 nvarchar 转换为浮点数时出错。**

4

4 回答 4

3

简而言之:仅当更改的数据类型与新修改的数据类型兼容时,才可以使用alter column命令。另外,建议用事务来完成。

例如:您可以使用下面的脚本将列从 varchar(50) 更改为 nvarchar(200)。

alter table TableName 
alter column ColumnName nvarchar(200)

编辑:关于您在更改列类型时发布的错误。

** 将数据类型 nvarchar 转换为浮点数时出错。**

一种方法是创建一个新列,并将所有好的(可转换和兼容的)记录转换为新列。之后,您可能想清理未转换的不良记录,删除旧列并将新添加和填充的列重命名为原始名称。重要提示:首先使用测试环境进行所有这些操作。通常,玩制作表会变成把事情搞砸的坏习惯。

寻找更多关于类似 SE 帖子的讨论的参考资料:

于 2013-01-05T18:45:52.467 回答
1

显然,没有默认转换为您的新数据类型。一种解决方案可能是创建具有请求类型的第二列,并编写您自己的转换函数。完成此操作后,删除第一列并用相同的名称重命名第二列。

于 2013-01-05T18:53:00.350 回答
0

需要考虑的事项:你的桌子有多大。然后使用alter table语法。我们不知道您要更改什么数据类型,因此例如

更改列:

Alter Table [yourTable] Alter column [yourColumn] varchar(15) 
  • 您也可以尝试添加新列,然后使用旧列更新该列。删除旧列。重命名新列。这是一种更安全的更好方法,因为有时您持有的数据可能对新数据类型反应不佳......

一个帖子来寻找想法:更改大表中的列类型如何在不丢失数据的情况下更改 SQL 数据库中的列数据类型

于 2013-01-05T18:53:04.720 回答
0

更改该列的数据类型..但一般 sql 不允许更改。它会提示您删除该列..有设置来实现那个东西。
转到工具->选项->设计器->表和数据库设计器并取消选中阻止保存选项。我正在使用 abt sql server 2008R2。现在您可以轻松更改数据类型。在此处输入图像描述

于 2017-05-31T06:13:53.880 回答