0

SQL サーバーで非常に奇妙なものを見つけました。それが正常かどうかはわかりません。

insert @table
select ID, Lastname
from tableB
where ID NOT IN ( select ID from @Table)

常に 0 行が挿入されたと表示されます。@table の代わりに物理テーブルを使用すると、問題なく動作します。

クエリに何か見落としがありますか?

4

1 に答える 1

0

テーブル変数は他の通常の変数と同様にスコープ固有であるため、特定のSQLステートメントで使用する場合、そのスコープはそれだけです。ここでは、現時点では@tablevariableにデータが含まれていません。したがって、以下のようなクエリを記述します。

INSERT INTO @table
select ID, Lastname from tableB where ID NOT IN ( select ID from @Table)

このクエリは、ここで達成しようとしていることを達成することはありません。常にtableBからすべてのレコードを挿入します。

于 2012-10-10T04:25:38.067 に答える