私は、SQL Server 2008を使用していますR2IFを書くさまざまな方法の違いはありますか?
私はちょうど何かがテーブルIF EXISTS (SELECT * FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT ca FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT 1 FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT (1) FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT TOP 1 1 FROM ta WHERE ca = 'abc') PRINT 'YES'
彼らは/副作用/性能の結果に違いを持たないでくださいに存在するかどうかテストしたい
(どんなに小さな)? IF EXISTS(...)
だけで、あなたの文のWHERE
条項に基づいて行が存在するかどうかを確認します -
は
ありがとうございます! IF EXISTSとペアを組んでいない場合、これらのクエリにはいくつかの違いがあることを暗示していますか? – user1589188
@ user1589188:「スタンドアロン」の「SELECT *」がある場合は、(a)すべての列(すべての***列が必要です)、(b )あなたが必要とする列を指定しないでください(画像のようなBLOB列がある時点で追加された場合、驚くかもしれません)。 'IF EXISTS(..) 'の中にいないときは、決して' SELECT * 'を使うことは絶対にありません(あなたのプロダクションコードでは絶対に使用しないでください)。**常に明示的な**列のリストを使い、あなたが本当に必要とするように。 –