Sql Server复制行并按增量更改一列

时间:2014-01-09 15:27:16

标签: sql copy

我有一个包含四个字段ID,代码,国家/地区,价格的数据库。我想复制一种产品并增加价格。

示例:对于对象(1,'玩具','我们',100),我想得到一个价格为+10的新对象(2,'玩具','我们',110)。

这样的事情:

INSERT INTO Table
          ( ID
          ...., 
           Price
          )
     (SELECT ID
          ...., 
           Price+10)

有可能吗? 感谢

2 个答案:

答案 0 :(得分:0)

如果满足以下条件之一,则可以这样做:

  • IDIDENTITY列,或
  • 您可以根据原始列的ID制作一个公式,用于生成要插入的ID列。

对于IDENTITY列解决方案,请忽略INSERT语句中的ID,如下所示:

INSERT INTO MyTable
      (  ...,  Price
      )
 (SELECT ..., Price+10)

对于基于公式的解决方案,请为ID添加公式:

INSERT INTO MyTable
      (ID, ...,  Price
      ) -- The formula for the new ID below is NewID = 10000+OldID
 (SELECT ID+10000, ..., Price+10)

答案 1 :(得分:0)

是的,您可以在SELECT声明中使用INSERT INTO

INSERT INTO Table(ID,..., Price)
SELECT 2, ..., Price+10
WHERE ID = 1