web-dev-qa-db-ja.com

ファイルインポートの動的ファイル名

ファイルをインポートできるストアドプロシージャにファイル名を渡す方法を理解しようとしています。ただし、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;

結果

(27823 row(s) affected)
Msg 208, Level 16, State 0, Line 29
Invalid object name '#tmtImport'.
3
Kermit

使用する ##importをテーブルとして。グローバル一時テーブルは、接続の存続期間中存続します。 #importテーブルはexecの後にスコープ外になります

5
billinkc