Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Server按增量复制行并更改一列_Sql_Copy - Fatal编程技术网

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

Sql Server按增量复制行并更改一列,sql,copy,Sql,Copy,我有一个db,有四个字段id、代码、国家、价格。我想复制一种产品并提高其价格 例如:对于对象(1,'Toy','us',100),我想得到一个价格+10的新对象(2,'Toy','us',110) 大概是这样的: INSERT INTO Table ( ID ...., Price ) (SELECT ID ...., Price+10) INSERT IN

我有一个db,有四个字段id、代码、国家、价格。我想复制一种产品并提高其价格

例如:对于对象(1,'Toy','us',100),我想得到一个价格+10的新对象(2,'Toy','us',110)

大概是这样的:

INSERT INTO Table
          ( ID
          ...., 
           Price
          )
     (SELECT ID
          ...., 
           Price+10)
INSERT INTO MyTable
      (  ...,  Price
      )
 (SELECT ..., Price+10)
可能吗?
谢谢

如果满足以下条件之一,则这是可能的:

  • ID
    是一列,或
  • 给定原始列的
    ID
    ,您可以创建一个公式来生成要插入的列的
    ID
对于
IDENTITY
列解决方案,从
INSERT
语句中省略ID,如下所示:

INSERT INTO Table
          ( ID
          ...., 
           Price
          )
     (SELECT ID
          ...., 
           Price+10)
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 Table(ID,..., Price)
SELECT 2, ..., Price+10
WHERE ID = 1