Recebi uma consulta SELECT complexa, da qual gostaria de inserir todas as linhas em uma variável de tabela, mas o T-SQL não permite.
Na mesma linha, você não pode usar uma variável de tabela com as consultas SELECT INTO ou INSERT EXEC. http://odetocode.com/Articles/365.aspx
Breve exemplo:
declare @userData TABLE(
name varchar(30) NOT NULL,
oldlocation varchar(30) NOT NULL
)
SELECT name, location
INTO @userData
FROM myTable
INNER JOIN otherTable ON ...
WHERE age > 30
Os dados na variável da tabela seriam usados posteriormente para inseri-los / atualizá-los novamente em tabelas diferentes (principalmente cópia dos mesmos dados com pequenas atualizações). O objetivo disso seria simplesmente tornar o script um pouco mais legível e mais facilmente personalizável do que fazer SELECT INTO
diretamente nas tabelas corretas. O desempenho não é um problema, pois rowcount
é pequeno e só é executado manualmente quando necessário.
... ou apenas me diga se estou fazendo tudo errado.