一時テーブル (「#」で始まるテーブル) があるか、テーブル変数 (例のように「@」で始まる) があるかは、コードからは明確ではありません。ただし、どちらの方法でも、他のテーブルと同じように一時テーブル/変数を参照できます。
テーブル変数:
insert into ItemOrganisationSources
select i.ByLineID, t.ID, i.SourceTypeID
from ItemOrganisationSources AS i
inner join @TempTable AS t
on i.ID = t.ID --Plug in the appropriate field to join on here
where i.ItemOrganisationID in (
select ID from @itemOrganisationIDsToBeDuplicated)
一時テーブル:
insert into ItemOrganisationSources
select i.ByLineID, t.ID, i.SourceTypeID
from ItemOrganisationSources AS i
inner join #TempTable AS t
on i.ID = t.ID --Plug in the appropriate field to join on here
where i.ItemOrganisationID in (
select ID from @itemOrganisationIDsToBeDuplicated)
質問をもう一度読んだ後、一時テーブルを他のデータに結合しようとしているのか、それとも一時テーブルの ID ごとに 1 回だけ挿入しようとしているのか完全にはわかりません。後者の場合、これはめったに使用されない可能性がありますCROSS JOIN
。
insert into ItemOrganisationSources
select i.ByLineID, t.ID, i.SourceTypeID
from ItemOrganisationSources AS i
cross join #TempTable AS t --cross join instead of inner join
where i.ItemOrganisationID in (
select ID from @itemOrganisationIDsToBeDuplicated)