2017-02-10 11 views
-2

私は検索して検索しようとしましたが、一致する回答が見つかりませんでした。
データベース内の300行を更新する必要があり、クエリが長くなり、長くなるようです。私は何とかテンポラリテーブルを作ることができますが、私は立ち往生しています。テーブル300個の行など複数の行を更新するSQL

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

そして例以下


ので、古いarticlenumberはProductIDを経由して、それに参加し、それらを好きな設定、あなたはデシベルで、別のテーブルにNew Article Nrを持っている場合は、新しい...

+2

どのように(新)ArticleNumbersを更新するかを知るには? – jarlh

+0

新しいものは古いものを上書きする必要があります。だからEXRO300は5709070になる必要があります。唯一の問題は、私に300以上のものがあることです:/ –

+1

しかし、あなたはどうやって新しい値を知りますか? – jarlh

答えて

0

で交換する必要があります。

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

使用このクエリをテンポラリテーブルのデータを更新する

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

新しい商品番号と商品IDで新しい一時テーブルを作成しました。

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 

ニース!どうもありがとう!