Причина, що ви ставите 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
не буде дублювати індекси, обмеження, тригери або схему розділів таблиці вихідної таблиці.