Причина, що ви ставите WHERE 1=2в цьому SELECT INTOзапиті, полягає у створенні польової копії наявної таблиці без даних .
Якщо ви зробили це:
select *
into Table2
from Table1
Table2буде точним дублікатом Table1, включаючи рядки даних. Але якщо ви не хочете, щоб дані, що містяться у вас Table1, і ви просто хочете структуру таблиці, ви кладете WHEREпункт про фільтрацію всіх даних.
BOL SELECT INTOДовідкова цитата:
SELECT… INTO створює нову таблицю в групі файлів за замовчуванням і вставляє в неї отримані рядки із запиту.
Якщо у вашому WHEREпункті немає рядків, що виникають у результаті, жодна з них не буде вставлена в нову таблицю: отже, ви отримуєте дублікатну схему вихідної таблиці без даних (який був би бажаним результатом у цьому випадку).
Такого ж ефекту можна досягти TOP (0), наприклад:
select top (0) *
into Table2
from Table1;
Примітка : The SELECT INTOне буде дублювати індекси, обмеження, тригери або схему розділів таблиці вихідної таблиці.