2017-08-15 2 views
0

私はいくつかのファイルは、だから私は何をしたいSQL Serverの一括最後の行に違いを無視を挿入するか、スキップ

----------------------------------- 

で終わるSQL Serverにフラットファイルの数をインポートする

を一括挿入スクリプトを使用していますまたは最後の行をスキップするか、一括挿入の------------------を削除してください。これらのオプションの1つは可能ですか?

SET @s = N'BULK INSERT ' + @t + ' 
      FROM ''' + @f + ''' 
      WITH (FIELDTERMINATOR = ''|'', 
       ROWTERMINATOR = ''0x0a'', 
       FIRSTROW=2) ' 

lastrow = 1私は考えることができる唯一の方法は、(varchar(max)など)単一列のテーブルにファイル全体を挿入する最初のバルクにある

+0

バルーン挿入が行1の後に停止するため、 'lastrow = 1'は機能しません。ファイルの最後の行を特定し、' lastrow = [faulty行番号-1]を使用する必要があります – HoneyBadger

+0

すべてのファイルの形式が異なる場合は、どのようにして最終結果を特定できますか? – MBurger

+0

一括挿入を行い、 '----'で行を削除します。 – Ben

答えて

0

を動作しません。最後の行を特定でき、その値を実際のbulk insertに使用するよりも、

これはあまり単純ではありませんが、C#やjavaなどでカスタムソリューションを作成しない限り、別の方法はないと思います。たぶんSQLCMDを使用してファイルの行数を最初に読み取ることはできますが、私はその方法を知らないのです。

マイクロソフトが閉鎖したconnectアイテムがありますのでご注意ください。そのページで、マイクロソフトはopenrowsetソリューションを使用することを提案していますが、試してみる価値はあるかもしれませんが、あなたの状況ではうまくいくとは思えません。

関連する問題