La razón por la que coloca la WHERE 1=2
cláusula en esa SELECT INTO
consulta es para crear una copia de campo de la tabla existente sin datos .
Si hiciste esto:
select *
into Table2
from Table1
Table2
sería un duplicado exacto de Table1
, incluidas las filas de datos. Pero si no desea que se incluyan los datos Table1
y solo desea la estructura de la tabla, debe poner una WHERE
cláusula para filtrar todos los datos.
SELECT INTO
Cita de referencia de BOL :
SELECT ... INTO crea una nueva tabla en el grupo de archivos predeterminado e inserta en ella las filas resultantes de la consulta.
Si su WHERE
cláusula no tiene filas resultantes, ninguna se insertará en la nueva tabla: por lo tanto, terminará con el esquema duplicado de la tabla original sin datos (que sería el resultado deseado en este caso).
Se puede lograr el mismo efecto con TOP (0)
, por ejemplo:
select top (0) *
into Table2
from Table1;
Nota : El SELECT INTO
no duplicará los índices, restricciones, disparadores o esquema de partición de la tabla fuente.