csvをSQL Serverにインポートするための、迅速かつ簡単な方法

.net c# sqlbulkcopy sql-server

質問

私たちはしてCSVファイルをインポートしているCSVReaderその後、使用してSqlBulkCopy SQL Serverにそのデータを挿入します。このコードは私たちのために働きますが、非常に単純ですが、複雑すぎることのないより高速なメソッド(ファイルの中には100000行あります)があるのでしょうか?

        SqlConnection conn = new SqlConnection(connectionString);
        conn.Open();
        SqlTransaction transaction = conn.BeginTransaction();
        try
        {
            using (TextReader reader = File.OpenText(sourceFileLocation))
            {
                CsvReader csv = new CsvReader(reader, true);
                SqlBulkCopy copy = new SqlBulkCopy(conn, SqlBulkCopyOptions.KeepIdentity, transaction);
                copy.DestinationTableName = reportType.ToString();
                copy.WriteToServer(csv);
                transaction.Commit();
            }
        }
        catch (Exception ex)
        {
            transaction.Rollback();
            success = false;
            SendFileImportErrorEmail(Path.GetFileName(sourceFileLocation), ex.Message);
        }
        finally
        {
            conn.Close();
        }

人気のある回答

これを行う独自のツールを構築する代わりに、 SQL Serverのインポートとエクスポート / SSISを見てください。フラットファイルとSQL Serverデータベースを直接ターゲットにすることができます。出力dtsxパッケージは、コマンドラインから実行することも、SQL Serverエージェント経由でジョブとして実行することもできます。

私はそれを提案している理由は、ウィザードが並列性に最適化されており、大きなフラットファイルでうまく動作するからです。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ