更新列数据类型并更新数据

时间:2012-08-24 13:27:26

标签: sql-server-2008 type-conversion

我有SQL服务器数据库设计问题。

我有一个现有的数据库表,里面有数百条记录。其中一列是NVARCHAR类型,但它应该是一个整数,其中包含查找表中的所有数据。

在SQL Server中是否有任何聪明的方法可以将数据从列中取出并放入新的查找表中,更改列的数据类型并使用新查找表中的正确ID更新值?

提前致谢。

我正在使用SQL Server 2008

1 个答案:

答案 0 :(得分:3)

不,你必须按照3个步骤进行:

  1. 将值插入新查找表
  2. 更新当前行,以便nvarchar列现在包含查找表中的相应ID值
  3. 将列定义更改为int
  4. (3 :-)中的第4个)在此列和查找表的ID列之间创建外键约束。
  5. 值得庆幸的是,int值应始终能够容纳nvarchar,除非它是一个特别小的值(在这种情况下,您必须先扩展它)。