update [コピー先データベース名].[dbo].テーブル名
set コピー先テーブル列名1=コピー元テーブル列名1, コピー先テーブル列名2=コピー元テーブル列名2, ... ,コピー先テーブル列名n=コピー元テーブル列名n
from [コピー元データベース名].[dbo].テーブル名 as テーブル別名
where 条件式
データベース間でレコードを更新する場合の例です。
update [コピー先データベース名].[dbo].テーブル名
set コピー先テーブル列名1=コピー元テーブル列名1, コピー先テーブル列名2=コピー元テーブル列名2, ... ,コピー先テーブル列名n=コピー元テーブル列名n
from [コピー元データベース名].[dbo].テーブル名 as テーブル別名
where 条件式
下記の例では、データベース1のprofileテーブルのレコードを、データベース2のprofileテーブルのレコードで更新します。 更新するレコードはidで対応付いたレコードになります。
update [Database1].dbo.profile
set name=a.name, nameyomi=a.nameyomi, englishname=a.englishname, comment=a.comment
from [Database2].dbo.profile as a
where profile.id=a.id
以下のテーブルを準備します。
id | name | born |
---|---|---|
1 | Penta | 1970-01-0100:00:00.000 |
2 | KumaGorou | 1972-04-0100:00:00.000 |
3 | ToriZaburou | 1974-05-0100:00:00.000 |
4 | Gonzalles | 1981-06-0100:00:00.000 |
id | name | born |
---|---|---|
1 | ||
2 | ||
3 | ||
4 |
次のSQL文を実行します。
update [Sandbox2].dbo.SimpleEmproyee set name=a.name, born=a.born from [Sandbox1].dbo.SimpleEmproyee as a
where SimpleEmproyee.id=a.id