Se quisermos criar uma nova tabela a partir de uma existente no SQL Server, podemos fazer o seguinte
SELECT * into Table2
from Table1
WHERE 1=2
Qual é o ponto da cláusula where? Eu tentei sem a cláusula where e funcionou bem. Eu vi essa cláusula where em muitos exemplos na internet, mas não a razão pela qual ela é necessária.
O motivo de você colocar a
WHERE 1=2
cláusula nessaSELECT INTO
consulta é criar uma cópia de campo da tabela existente sem dados .Se você fez isso:
Table2
seria uma duplicata exata deTable1
, incluindo as linhas de dados. Mas se você não quiser os dados contidos emTable1
, e quiser apenas a estrutura da tabela, coloque umaWHERE
cláusula para filtrar todos os dados.SELECT INTO
Citação de referência BOL :Se sua
WHERE
cláusula não tiver linhas resultantes, nenhuma será inserida na nova tabela: Portanto, você acaba com o esquema duplicado da tabela original sem dados (o que seria o resultado desejado nesse caso).O mesmo efeito pode ser alcançado com
TOP (0)
, por exemplo:Observação : o
SELECT INTO
não duplicará os índices, restrições, gatilhos ou esquema de partição da tabela de origem.