SQL 服务器复制行并按增量更改一列



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

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

像这样:

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

可能吗?谢谢

如果满足以下条件之一,则可以执行此操作:

  • 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)

是的,您可以在INSERT INTO语句中使用SELECT

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

最新更新