Estou tentando descobrir uma maneira de passar um nome de arquivo para um procedimento armazenado que pode importar um arquivo. No entanto, após configurar o SQL dinamicamente, o objeto não pode ser encontrado.
DECLARE @fileName varchar(200),
@sql varchar(max);
SET @fileName = 'C:\file.csv';
SET @sql = 'SELECT *
INTO #import
FROM OPENROWSET(BULK ''' + @fileName + ''',
FORMATFILE=''C:\format.xml'',
FIRSTROW = 2) AS a';
EXEC(@sql);
SELECT * INTO #stage
FROM #import;
O resultado
(27823 row(s) affected)
Msg 208, Level 16, State 0, Line 29
Invalid object name '#tmtImport'.
Use
##import
como sua mesa. A tabela temporária global durará toda a vida útil da conexão. As#import
tabelas saem do escopo após oexec