また、あなたは使用することができますTOP(0):
SELECT TOP(0) *
INTO #TempTable
FROM SourceTable
ただし、これら3つのケース(、、)のすべてSELECT TOP(0)でWHERE NULL=NULL、WHERE 1=0実行プランは同じになります。

これらすべての場合において、SQL Serverは、クエリ最適化フェーズから、これらのクエリが実行時に行を生成しないことを認識します。したがって、ソーステーブル(Sales.SalesOrderHeaderこの場合)からデータを読み取る代わりに、サーバーはConstant Scan演算子を使用します:
1)
[...]クエリオプティマイザーは、データのページに触れる前であっても、述語を満たすことができるレコードがないことを認識している可能性があります
(ソース)
2)
矛盾の検出は、クエリが行をまったく返さないように記述されていることを認識する最適化です。
(ソース)
結論:これらのソリューションのいずれかを使用できます。
注:使用できるのは。WHERE NULL=NULLの場合のみですSET ANSI_NULLS ON。ANSI_NULLS設定がの場合OFF、WHERE NULL=NULLフィルターは常にtrueであり、実行プランは次のようになります。
