Sql server 2008 更新列数据类型并更新数据

Sql server 2008 更新列数据类型并更新数据,sql-server-2008,type-conversion,Sql Server 2008,Type Conversion,我有一个SQL server数据库设计问题 我有一个现有的数据库表,其中有数百条记录。其中一列的类型为NVARCHAR,但它应该是包含查找表中所有数据的整数 SQL Server中是否有任何聪明的方法将数据从列中取出并放入新的查找表中,更改列的数据类型并使用新查找表中的正确ID更新值 提前谢谢 我使用的是SQL Server 2008否,您必须按3个步骤执行: 将这些值插入新的查找表 更新当前行,以便nvarchar列现在包含查找表中的适当ID值 将列定义更改为int (第4个,共3个:-)在此

我有一个SQL server数据库设计问题

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

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

提前谢谢


我使用的是SQL Server 2008

否,您必须按3个步骤执行:

  • 将这些值插入新的查找表
  • 更新当前行,以便
    nvarchar
    列现在包含查找表中的适当ID值
  • 将列定义更改为
    int
  • (第4个,共3个:-)在此列和查找表的ID列之间创建外键约束

  • 谢天谢地,
    int
    值应该始终能够适合
    nvarchar
    ,除非它特别小(在这种情况下,您必须首先展开它)。

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

  • 将这些值插入新的查找表
  • 更新当前行,以便
    nvarchar
    列现在包含查找表中的适当ID值
  • 将列定义更改为
    int
  • (第4个,共3个:-)在此列和查找表的ID列之间创建外键约束

  • 谢天谢地,
    int
    值应该始终能够适合
    nvarchar
    ,除非它特别小(在这种情况下,您必须首先扩展它)。

    数据是可转换的,否则您会遇到问题吗?我是说,你只有数字?或者任何信件?我担心数据都是文本。是的,对不起-开始时被误解了,现在我明白了(并且删除了原始评论)。。。DTU的答案是我建议的数据是可转换的,否则你会有问题吗?我是说,你只有数字?或者任何信件?我担心数据都是文本。是的,对不起-开始时被误解了,现在我明白了(并且删除了原始评论)。。。DTU的答案是我也会推荐的谢谢你的帮助,我现在就试试。谢谢你的帮助,我现在就试试