テキスト ファイルを開き、数千行を読み取り、データベース内のテーブルにコードを追加するストアド プロシージャ コードを探しています。これを T-SQL で実装する簡単な方法はありますか?
4 に答える
SSISの使用を検討することをお勧めします。この種のことを行うように設計されています (特に定期的に行う必要がある場合)。
これは、テキスト ファイルの読み取りと DB への挿入に関する適切なリンクです。
ファイルを「そのまま」ロードする準備ができている場合 (データ変換や複雑なマッピングは必要ありません)、一括挿入コマンドを使用できます。
CREATE PROC dbo.uspImportTextFile
AS
BULK INSERT Tablename FROM 'C:\ImportFile.txt'
WITH ( FIELDTERMINATOR ='|', FIRSTROW = 2 )
多くのレコードをテーブルに挿入する最も効率的な方法は、BULK INSERTを使用することです(これはBCPユーティリティが使用するものであると私は信じているので、同じくらい高速である必要があります)。
BULK INSERT
は、大量のデータを挿入するために最適化されており、単純なINSERT
ステートメントのパフォーマンスではうまくいかない場合に使用することを目的としています。
BULK INSERT
それがあなたが求めているものではない場合は、より簡単なテクニックについて次の記事を参照することをお勧めします。
記事にリンクされているのはストアドプロシージャuftReadFileAsTable
であり、目的を達成するのに十分な汎用性があるはずです。
そうでない場合は、少なくともSQLでファイルを読み取る方法の例としてストアドプロシージャを使用できます(OLE / Scripting.FileSystemObjectを使用します)
try ユーザー関数を使用しないのはなぜですか? このようにして、.NET を使用してファイルにアクセスし、処理することができます。
この投稿をチェックしてください