使用子查询重新编号表中的键

时间:2011-03-23 01:27:01

标签: sql sql-server-2008

我有一个包含deparments列表的表。密钥(样本中的“代码”)只是一个指定的编号。不幸的是,这个表现在需要容纳一些带有预定义代码的新软件。当然,这些定义的代码与现有代码冲突。我想获取现有的键并将每个键增加200以将它们移出碰撞空间。我试过这个问题:

update  [TEST-PH].[dbo].[Emp_PosDepartments]
set Code = (select code + 200 from [TEST-PH].[dbo].[Emp_PosDepartments] o where o.Code = Code)

但是当我尝试对SQL服务器运行时,我收到以下消息:

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

有关如何完成重新编号键任务的任何建议吗?

1 个答案:

答案 0 :(得分:2)

正确的语法不一定意味着使用子查询:

update  [TEST-PH].[dbo].[Emp_PosDepartments]
set     Code = Code + 200