2

これが開始する構文です(分類されたデータは省略されています)

BULK INSERT 
[dbName].[dbo].[data_200801] FROM '\\servername\wwwroot\path\Files\data_200904.csv' WITH 
      (
         FIELDTERMINATOR = ';',
         ROWTERMINATOR =  '\n'
      );

これは、ジョブのステップの 1 つとして正常に機能します。私が壁にぶつかったのは、次のような SQL 関数を使用してファイル名を動的にする必要があることです。

ファイル名 = データ_ & 年 (GetDate()) & 月 (GetDate()) & .csv

仕事で動的機能を連結できないようです。

挑戦が好きな人は私を助けてくれますか?

ありがとうございました

4

1 に答える 1

1

これを動的SQLとして実行するストアドプロシージャを作成し、ファイル名メソッドを使用してコマンドを文字列で構築します。ジョブから、この新しいストアド プロシージャを実行します。

CREATE PROCEDURE MyBulkInsert
AS
DECLARE @Query   varchar(500)
SET @Query='BULK INSERT [dbName].[dbo].[data_200801] FROM ''\servername\wwwroot\path\Files\data_'+CONVERT(varchar(4),Year(GetDate()))+RIGHT('0'+CONVERT(varchar(2),Month(GetDate())),2)+'.csv'' WITH ( FIELDTERMINATOR = '';'', ROWTERMINATOR = ''\n'' );'
EXECUTE (@Query)
Go

一括挿入コマンドではなく、ジョブからその手順を実行します

于 2009-04-29T17:34:46.350 に答える