更新多行SQL

时间:2017-02-10 11:15:10

标签: sql sql-server sql-update

我试图搜索和搜索,但我找不到匹配的答案。
我需要更新数据库中的300行,查询似乎变得越来越长。我知道我可以用某种方式制作临时表,但我被卡住了。
下面是表格的一个例子

ProductID | (Old)ArticleNumber | (New)ArticleNumber
268687    |      EXRO300       |       5709070
268702    |      EXS50030      |       1595831
268728    |      EX62111       |       1562993
268730    |      EXRT25        |       1009451
268733    |      EX240220V     |       7800100
268737    |      EX600         |       1875928
..........|....................|.................

然后像300行。

所以,旧的文章数需要被新的......替换。

3 个答案:

答案 0 :(得分:0)

如果您在db中的另一个表中有New Article Nr,请通过ProductID加入,并将它们设置为:

UPDATE oldProductTbl
SET oldProductTbl.ArticleNumber = newProductTbl.ArticleNumber
FROM Products1 oldProductTbl
    JOIN Product2 newProductTbl 
    ON oldProductTbl.ProductId = newProductTbl.ProductId

答案 1 :(得分:0)

使用此查询更新临时表中的数据

 UPDATE
     Table_A
  SET
    Table_A.(old)ArticleNumber = Table_A.(New)ArticleNumber,
 FROM
     Some_Table AS Table_A

答案 2 :(得分:0)

我使用新的文章编号和ProductID创建了一个新的临时表。

CREATE TABLE #NewArticle(
ProductID int,
ArticleNumber char(30) )

然后我使用插入表填充它。

insert into #NewArticle(ProductID,NewArticle)
VALUES ('268687'),('5709070'),
('269364','HA61451CTH'),
('269393','5665237'),
........

然后这就更新了所有内容。

update tblProduct
set NewArticle = #NewArticle.NewArticle
from tblProduct
inner join #NewArticle on tblproduct.ProductID = #NewArticle.ProductID

尼斯!非常感谢!