他のデータベースのテーブルのselectの結果でUpdateする
他のデータベースのテーブルの内容を用いてアップデートする場合には from句を使用します。
また、同じ名前の表からのアップデートでは名前が同じになるためasを使用し、別の名前を定義する必要もあります。
例1
下記の例は、データベース「iD」のContentデーブルのID番号146のレコードのcategory, title, docを、データベース「iD2」のContentテーブルのID番号146のレコード内容で更新する例です。
use iD
use iD2
update [iD].[dbo].Contents
set
category=A.category,
title=A.title,
doc=A.doc
from [iD2].[dbo].Contents as A
where [iD].[dbo].Contents.id = 146 and A.id=146
実行前
iD テーブル
id | category | title | doc |
145 | 旅行 | フランス旅行 | フランス旅行の見どころ |
146 | 生活 | ごみの捨て方 | ごみは毎週水曜日 |
147 | 健康 | 運動のしかた | 軽いウォーキングで |
148 | 旅行 | チリ旅行 | チリで食べておくべきもの |
iD2 テーブル
id | category | prtitleice | doc |
145 | 旅行 | フランス旅行 | フランス旅行で食べたいもの |
146 | 旅行 | スーツケースの選び方 | 丈夫なスーツケールを選ぶポイント |
147 | 健康 | 運動のしかた | 軽いウォーキングで |
148 | 旅行 | チリ旅行 | チリの世界遺産 |
実行後
id=146のレコードが iD2テーブルの内容で更新されます。
iD テーブル
id | category | title | doc |
145 | 旅行 | フランス旅行 | フランス旅行の見どころ |
146 | 旅行 | スーツケースの選び方 | 丈夫なスーツケールを選ぶポイント |
147 | 健康 | 運動のしかた | 軽いウォーキングで |
148 | 旅行 | チリ旅行 | チリで食べておくべきもの |
iD2 テーブル
id | category | prtitleice | doc |
145 | 旅行 | フランス旅行 | フランス旅行で食べたいもの |
146 | 旅行 | スーツケースの選び方 | 丈夫なスーツケールを選ぶポイント |
147 | 健康 | 運動のしかた | 軽いウォーキングで |
148 | 旅行 | チリ旅行 | チリの世界遺産 |
例2
データベース「iD」のContents テーブルのすべてのレコードを、データベース「iD2」のContentテーブルの同じidのレコードで更新する例です。
use iD
use iD2
update [iD].[dbo].Contents
set
document=A.Document
from [iD2].[dbo].Contents as A
where [iD].[dbo].Contents.id = A.id
実行前
iD テーブル
id | name | document |
145 | Penguin | あいうえお |
146 | Duck | かきくけこ |
147 | Whale | さしすせそ |
148 | Bear | たちつてと |
iD2 テーブル
id | name | document |
1 | Penguin | ABCD |
2 | Duck | EFGH |
3 | Whale | IJKL |
4 | Bear | MNOP |
実行後
iDテーブルのすべてのレコードのdocumentの値がiD2テーブルの内容で更新されます。
iD テーブル
id | name | document |
145 | Penguin | ABCD |
146 | Duck | EFGH |
147 | Whale | IJKL |
148 | Bear | MNOP |
iD2 テーブル
id | name | document |
145 | Penguin2 | ABCD |
146 | Duck2 | EFGH |
147 | Whale2 | IJKL |
148 | Bear2 | MNOP |
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。