Powodem umieszczenia WHERE 1=2
klauzuli w tym SELECT INTO
zapytaniu jest utworzenie kopii pola istniejącej tabeli bez danych .
Jeśli to zrobiłeś:
select *
into Table2
from Table1
Table2
byłby dokładnym duplikatem Table1
, w tym wierszy danych. Ale jeśli nie chcesz, aby dane były w nim zawarte Table1
, a po prostu chcesz struktury tabeli, umieść WHERE
klauzulę, aby odfiltrować wszystkie dane.
SELECT INTO
Cytat referencyjny BOL :
WYBIERZ… INTO tworzy nową tabelę w domyślnej grupie plików i wstawia do niej wynikowe wiersze z zapytania.
Jeśli twoja WHERE
klauzula nie ma wynikowych wierszy, żaden nie zostanie wstawiony do nowej tabeli: W rezultacie otrzymujesz duplikat schematu oryginalnej tabeli bez danych (co w tym przypadku byłoby pożądanym rezultatem).
Ten sam efekt można osiągnąć TOP (0)
na przykład:
select top (0) *
into Table2
from Table1;
Uwaga : SELECT INTO
Nie powiela indeksów tabeli ograniczeń, ograniczeń, wyzwalaczy ani schematu partycji.