• 締切済み

【 困 】 ストアドプロシージャ

OS:WIN2000 DB:SQLServer2000 下記のストアドプロシージャを作成しました。 BULK INSERTを使っています。 引数でCSVファイルのパスを渡そうとしています。 「エラー170:行5: '@Query'の近くに無効な構文があります。」 というエラーになってしまいます。 5行目にあるFromの次に変数を書くには、どうしたらいいのでしょうか? CREATE proc SP_BULK_INSERT @Query char(100) AS BULK INSERT T_顧客マスタ FROM @Query WITH (FIELDTERMINATOR = ',') GO

みんなの回答

  • kumagoro-
  • ベストアンサー率57% (36/63)
回答No.2

すいません。No.#1です。 5行目は  SELECT @sql = 'BULK INSERT T_顧客マスタ FROM ''' + @Query + ''' WITH (FIELDTERMINATOR = '','')' となります。 @Queryの前後にシングルクォーテーションが要ります。 これで動的SQLが作成されます。

  • kumagoro-
  • ベストアンサー率57% (36/63)
回答No.1

CREATE proc SP_BULK_INSERT  @Query char(100) AS  DECLARE @sql varchar(8000)  SELECT @sql = 'BULK INSERT T_顧客マスタ FROM ' + @Query + ' WITH (FIELDTERMINATOR = '','')'  EXEC(@sql) GO とやってみてはいかがですか?