SQL サーバーで非常に奇妙なものを見つけました。それが正常かどうかはわかりません。
insert @table
select ID, Lastname
from tableB
where ID NOT IN ( select ID from @Table)
常に 0 行が挿入されたと表示されます。@table の代わりに物理テーブルを使用すると、問題なく動作します。
クエリに何か見落としがありますか?
SQL サーバーで非常に奇妙なものを見つけました。それが正常かどうかはわかりません。
insert @table
select ID, Lastname
from tableB
where ID NOT IN ( select ID from @Table)
常に 0 行が挿入されたと表示されます。@table の代わりに物理テーブルを使用すると、問題なく動作します。
クエリに何か見落としがありますか?
テーブル変数は他の通常の変数と同様にスコープ固有であるため、特定のSQLステートメントで使用する場合、そのスコープはそれだけです。ここでは、現時点では@tablevariableにデータが含まれていません。したがって、以下のようなクエリを記述します。
INSERT INTO @table
select ID, Lastname from tableB where ID NOT IN ( select ID from @Table)
このクエリは、ここで達成しようとしていることを達成することはありません。常にtableBからすべてのレコードを挿入します。