0

私は SQL Server 2008 R2 を使用しています。次のテーブルがあります: client(id,country,name)temp(id,country)、およびそれらは互いに無関係です。temp.id 値を client.id に設定する方法を知りたいです。国と同じです。更新文とは?私は他の Web サイトを見ていて、関連するテーブルの解決策を見つけましたが、それは私の場合ではありません。

4

3 に答える 3

0

簡単なことができるはずですinsert

insert into client
select id, country, '' from temp

nameテーブルにないため、特定のものを設定することをお勧めしtempます(テーブルでnull可能でない限りclient)。

ここにデモがあります。

idまたは、が自動インクリメント列の場合は、idからを削除しselectます。

insert into client
select country, '' from temp

ここにデモがあります。

于 2013-05-16T22:18:39.293 に答える
0

SET で考える必要がある場合は、手続き的に考えています。

SELECT を使用してデータを取得する
WHERE を使用してスペインからのクライアントのみを選択
する 列の定数値を
使用して取得の一部としてデータを変更する 取得したデータを使用してテーブルに挿入する

INSERT INTO client
SELECT id+10 as id, 'Germany' as country
FROM client
WHERE country = 'Spain'

もちろん、これが SELECT、WHERE、UPDATE などを学習する必要がある演習である場合は、手順を踏むことになります。

于 2013-05-16T22:20:11.027 に答える
0

おそらく、両方のテーブルを 1 つの方法で同期する必要があります。

UPDATE t SET t.id=c.id, t.country=c.countryname
FROM client c INNER JOIN temp t ON t.id = c.id

INSERT INTO temp(id,country)
  SELECT c.id, c.countryname
  FROM client c
  WHERE NOT EXISTS(SELECT 1 FROM temp t 
                   WHERE t.id=c.id)

デモ

于 2013-05-16T22:20:43.513 に答える