文件导入的动态文件名

Ker*_*mit 3 sql-server sql-server-2008-r2 openrowset

我试图找出一种方法,可以将文件名传递到可以导入文件的存储过程中。但是,动态设置SQL后,找不到对象。

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;
Run Code Online (Sandbox Code Playgroud)

结果

(27823 row(s) affected)
Msg 208, Level 16, State 0, Line 29
Invalid object name '#tmtImport'.
Run Code Online (Sandbox Code Playgroud)

bil*_*nkc 5

使用##import为您的餐桌。全局临时表将在连接的生命周期内持续。该#import表后,进入的范围之exec