当数据库表已填充记录时,更改数据库表中的属性数据类型

时间:2013-01-05 18:41:44

标签: sql sql-server-2008

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

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

4 个答案:

答案 0 :(得分:3)

简而言之:只有更改后的数据类型与新修改的数据类型,才能使用alter column命令。此外,建议完成交易。

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

alter table TableName 
alter column ColumnName nvarchar(200)

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

  

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

一种方法是创建一个新列,并将所有好的(可转换和兼容的)记录转换为新列。之后,您可能希望清理不转换的错误记录,删除旧列并将新添加和填充的列重新命名为原始名称。 重要事项:首先使用测试环境进行所有这些操作。通常情况下,玩制作表变成了一个不好的做法。

参考以寻找有关类似SE帖子的更多讨论:

答案 1 :(得分:1)

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

答案 2 :(得分:0)

需要考虑的事项:你的餐桌有多大。然后使用alter table语法。我们不知道您想要更改哪种数据类型,因此仅限于此类。

改变栏目:

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

要查找想法的帖子:Change column types in a huge tableHow to change column datatype in SQL database without losing data

答案 3 :(得分:0)

改变那一列的数据类型..但是一般情况下sql不会允许channge.It会提示你删除该列。有设置来实现那个东西。
转到工具 - >选项 - >设计器 - >表和数据库设计器和取消选中防止保存选项。我正在使用abt sql server 2008R2.Now你可以轻松更改数据类型。enter image description here