ファイルをインポートできるストアドプロシージャにファイル名を渡す方法を理解しようとしています。ただし、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'.
使用する ##import
をテーブルとして。グローバル一時テーブルは、接続の存続期間中存続します。 #import
テーブルはexec
の後にスコープ外になります