Você pode usar uma associação para criar e preencher a nova tabela de uma só vez:
SELECT
t.*
INTO
dbo.NewTable
FROM
dbo.TableWithIdentity AS t
LEFT JOIN dbo.TableWithIdentity ON 1 = 0
;
Por causa da 1 = 0
condição, o lado direito não terá correspondências e, assim, evitará a duplicação das linhas do lado esquerdo e, por ser uma junção externa, as linhas do lado esquerdo também não serão eliminadas. Por fim, como se trata de uma associação, a propriedade IDENTITY é eliminada.
Selecionar apenas as colunas do lado esquerdo, portanto, produzirá uma cópia exata do dbo.TableWithIdentity somente em dados, ou seja, com a propriedade IDENTITY removida.
Tudo isso dito, Max Vernon levantou um ponto válido em um comentário que vale a pena ter em mente. Se você observar o plano de execução da consulta acima:
você notará que a tabela de origem é mencionada no plano de execução apenas uma vez. A outra instância foi eliminada pelo otimizador.
Portanto, se o otimizador puder estabelecer corretamente que o lado direito da junção não é necessário no plano, deve ser razoável esperar que em uma versão futura do SQL Server seja possível descobrir que a propriedade IDENTITY não precisa ser removido também, pois não há mais outra coluna IDENTITY na linha de origem definida de acordo com o plano de consulta. Isso significa que a consulta acima pode parar de funcionar conforme o esperado em algum momento.
Mas, como observado corretamente pelo ypercubeᵀᴹ , até agora o manual afirmou explicitamente que, se houver uma junção, a propriedade IDENTITY não será preservada:
Quando uma coluna de identidade existente é selecionada em uma nova tabela, a nova coluna herda a propriedade IDENTITY, a menos que [...] a instrução SELECT contenha uma junção.
Portanto, enquanto o manual continuar mencionando, provavelmente podemos ter certeza de que o comportamento permanecerá o mesmo.
Parabéns a Shaneis e ypercubeᵀᴹ por abrir um tópico relacionado no chat.
JOIN (SELECT 1) AS dummy ON 1 = 1
também?