0

たとえば、Table1 は (id int, address varchar(100)) として定義されます。

テーブル内のすべての値を更新します。

create table #test (id int, address varchar(100))

insert into #test (id, address)
values (5, 'test address')

update Table1
set
    address = (select top 1 address from #test)
where exists (select 1 from #test t where id = t.id)

id = 5 のエントリのみを更新します。

create table #test (id2 int, address varchar(100))

insert into #test (id2, address)
values (5, 'test address')

update Table1
set
    address = (select top 1 address from #test)
where exists (select 1 from #test t where id = t.id2)

唯一の違いは、一方の一時テーブルにはソース テーブルと一致する ID があり、もう一方には一致しないことです。なぜそれが問題になるのでしょうか?それとも、ここでもっと微妙な、またはもっと明白な何かが起こっていますか?

4

1 に答える 1