2012-02-10 4 views
15

SQL Server 2008データベースの1つのテーブルにデータをコピーして同じテーブルにコピーして、コピーされたデータの1つの列の値を1つの指定された数に変換します。私はメトリックに112のキーですべてのこれらのエントリをコピーし、コピーされたすべての行に387のキーを割り当てたい同じテーブルとの間でデータをコピーし、コピーされたデータの値を指定した値に変更します

Key Name MetricValue 
112 Joe  34 
112 Fred  38 
112 Frank 12 
112 John  56 
112 David 87 
112 Sue  43 
234 Alli  34 
234 Susan 38 
234 Anne  12 
234 Franki 56 

、これが与える:ここではデータがあり、メトリックと呼ばれ、次の表では、一例であり、テーブルのメトリック値:

Key Name MetricValue 
112 Joe  34 
112 Fred  38 
112 Frank 12 
112 John  56 
112 David 87 
112 Sue  43 
234 Alli  34 
234 Susan 38 
234 Anne  12 
234 Franki 56 
387 Joe  34 
387 Fred  38 
387 Frank 12 
387 John  56 
387 David 87 
387 Sue  43 

注:この表には、上記に示していない主キーもあります。

どのように私は、SQL Serverと互換性のあるSQLでこれを行うことができますここで助けを2008

おかげで、

トニー

答えて

25

あなたが..

INSERT INTO Metric(Key,Name,MetricValue) 
SELECT 387,Name,MetricValue 
FROM Metric 
WHERE Key = 112 
+1

素晴らしいを試してみてください助けてくれてありがとう。私はそれが自明であることを知っていた。私はすぐにそれを試してみます。 – flyhai

+0

穏やかなリマインダ:選択部分を先に実行してください(そして、構文が簡単にこれを許可し、良いクエリを作成します)。そうしないと問題が発生する可能性があります。 – JosephDoggie

+0

@upあなたがたくさんのエントリを持っている場合、あなたのDBをkillしないためにいくつかの 'limit 5'を使います:) –

関連する問題