次のようにscope_testというテーブルがあります。
create table scope_test
(
id int identity(1,1),
val varchar(100)
)
このテーブルに行を挿入し、2 つの異なる SQL ステートメントでスコープ ID を選択すると、2 つのステートメントのパフォーマンスの違いが分かります。
insert into scope_test values('abcd')
select scope_identity() -- statement 1
select scope_identity() from scope_test -- statement 2
実行計画によると、ステートメント 1 はステートメント 2 よりも高速です。
私は知っておくべき好奇心です:1.このパフォーマンスの違いはなぜですか、そして2.ステートメント1で使用されているように、つまりテーブル名なしでスコープidentity()を使用しても安全ですか?