2017-11-13 29 views
0

.CSVファイルからSQL Serverにデータを自動的にインポートしようとしています。たとえば、フォルダに.CSV個のファイルがある場合、そのフォルダに新しい.CSVファイルを追加するたびに、そのファイル.CSVのデータを自動的にSQL Serverにインポートする必要があります。SQL Serverにデータを自動的にインポート

+0

[.CSVファイルからSQL Serverにデータを自動的にインポートする](https://stackoverflow.com/questions/47271933/automatically-importing-data-into-sql-server-from-csv-file)の可能な複製 – SMor

+0

おそらくこれが役立つかもしれません。https://dba.stackexchange.com/questions/143215/read-csv-and-perform-sql-in-sql-server-management-studio – dllhell

答えて

1

本当に自動にしたい場合は、SQLを超えなければなりません。それ以外の場合は、csvからデータベースへの負荷をスケジューリングするには、単純なSSISパッケージが必要です。その後、毎日、毎週、毎時などのデータをインポートするためにSQL Serverエージェントを使用してジョブをスケジュールできます。

+0

CSVから私のデータベースにロードしますか?私は前にSSISパッケージを使用していないので、私はそれを何にする必要がありますか?前もって感謝します。 –

+0

SSISはそれほど悪くありません。 Visual Studio https://www.visualstudio.com/downloads/のコミュニティ版を入手し、SQL Server Data Toolsをダウンロードしてください。統合パッケージを作成する必要があります。あなたの接続を設定するのが最も難しい部分ですが、悪くないです。ソースはフラットファイルになります。宛先はSQL Serverテーブルになります。データベースの管理者でない場合は、SQL Serverエージェントが表示されないことがあります。クイックチュートリアルhttps://www.youtube.com/watch?v=b25r0jDoseOQ – Andrew

0

EDITED !!これはPHP用

$filenames = glob($_SERVER['DOCUMENT_ROOT'] .'/filespath/*'); 
foreach($filenames as $filename){ // iterate files 
    if(!file_exists($filename) || substr($filename,-3) == 'csv') continue; 
    $file = fopen($filename, "r"); 
    $csv = array(); 
    while (($line = fgetcsv($file)) !== FALSE) { 
     //$line is an array of the csv elements 
     $csv[] = $line; 
    } 
    fclose($file); 
    foreach ($csv as $key => $value) { 
     //put your code here to work with $csv array. 
    } 
} 

あなたが望むものを得るためにこのコードを使用することができます。また、コードを自動化するにはcronが必要です。あなたはあなたのホストcpanelでそれを得ることができます。

+0

私はまだこれを行う方法について混乱していますか?上記のコードは私が実行すべきスクリプトですか? –

+0

最初の行は、指定したフォルダからすべてのファイルを取得しています。 各ファイルにループがあると、ファイルが存在するかどうかをチェックしていて、csv拡張子が必要です。このファイルをスキップしていない場合。はいの場合は次の行に進みます。 $ csv arrayを作成してfile.csv行を追加します。 結果として、$ csv配列があります。 –

関連する問題