我有一个包含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.
有关如何完成重新编号键任务的任何建议吗?
答案 0 :(得分:2)
正确的语法不一定意味着使用子查询:
update [TEST-PH].[dbo].[Emp_PosDepartments]
set Code = Code + 200