当数据库表在 SQL 中有记录时,我们可以更改属性的数据类型吗?
我正在使用 Microsoft Management Studio 2008。我得到的错误是:** 将数据类型 nvarchar 转换为浮点数时出错。**
当数据库表在 SQL 中有记录时,我们可以更改属性的数据类型吗?
我正在使用 Microsoft Management Studio 2008。我得到的错误是:** 将数据类型 nvarchar 转换为浮点数时出错。**
简而言之:仅当更改的数据类型与新修改的数据类型兼容时,才可以使用alter column
命令。另外,建议用事务来完成。
例如:您可以使用下面的脚本将列从 varchar(50) 更改为 nvarchar(200)。
alter table TableName
alter column ColumnName nvarchar(200)
编辑:关于您在更改列类型时发布的错误。
** 将数据类型 nvarchar 转换为浮点数时出错。**
一种方法是创建一个新列,并将所有好的(可转换和兼容的)记录转换为新列。之后,您可能想清理未转换的不良记录,删除旧列并将新添加和填充的列重命名为原始名称。重要提示:首先使用测试环境进行所有这些操作。通常,玩制作表会变成把事情搞砸的坏习惯。
寻找更多关于类似 SE 帖子的讨论的参考资料:
显然,没有默认转换为您的新数据类型。一种解决方案可能是创建具有请求类型的第二列,并编写您自己的转换函数。完成此操作后,删除第一列并用相同的名称重命名第二列。
需要考虑的事项:你的桌子有多大。然后使用alter table
语法。我们不知道您要更改什么数据类型,因此例如
更改列:
Alter Table [yourTable] Alter column [yourColumn] varchar(15)
一个帖子来寻找想法:更改大表中的列类型,如何在不丢失数据的情况下更改 SQL 数据库中的列数据类型