SQL Server のテーブルに CSV ファイルをインポートする方法
レポート分析をするときなど、CSVからデータベースのテーブルにデータを取り込むことがあります。
この問題に関しては、プログラマーに勝つのは全く難しいことではないと思います でも、SQL Serverでこんなことができたらいいと思いませんか!?
はい、SQL Serverにはその機能があります。
まず、CSVファイルを見てみましょう。D:ドライブの下にcsv.txtという名前で保存されており、次のような内容になっています。
さて、肝心のSQL Serverですが。
SQL Server の BULK INSERT コマンドを使用しています。コマンドの詳細な説明は、ここをクリックしてください。
まず、この情報を保持するために使用するデータのテーブルをSQL Serverに作成することから始めます。
CREATE TABLE CSVTable(
Name NVARCHAR(MAX),
Email NVARCHAR(MAX),
Area NVARCHAR(MAX)
)
そして、次のような文が実行されます。
BULK INSERT CSVTable
FROM 'D:\csv.txt'
WITH(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
SELECT * FROM CSVTable
F5キーを押すと、実行結果は次のようになります。
どうですか?プログラムを使うより簡単だと思いませんか!?
しかし、今度はいくつかの問題が出てきます。
1、CSVファイルには、二重引用符で囲まれている列の値と、二重引用符で囲まれていない列の値があります。
上記のステートメントをもう一度実行すると、前回とは異なる結果が得られます。
これらの列の中には、二重引用符が含まれているものがあり、これは私たちが望む結果ではないはずです。この問題を解決するには、一時テーブルを使用し、CSVを一時テーブルにインポートし、この一時テーブルから最終テーブルにインポートする際に二重引用符を削除する必要があります。
2、CSVファイルのカラム値がすべて二重引用符で囲まれている。
この問題は、前の問題より少し複雑です。CSVファイルをtempテーブルに最初にインポートすることに加えて、以下の場合にCSVファイルをtempテーブルにインポートするために使用されるコードを修正する必要があります。
丸で囲った部分に注目してください。
3、CSVファイルはデータテーブルのカラムよりも多くのカラムを持つ必要があります。
そして、データテーブルには3つのカラムしかありませんが、上記のインポートコードを実行すると、どのような結果になるでしょうか。
その結果、次のようになります。
これは後者をすべてAreaの列に入れるものです。これに対処するには、実はとても簡単で、つまり、データテーブルに欲しい列の値を順番に作り、不要な列の値は、データテーブルにも列を作り、一時的な列だけにして、このデータテーブルを最終テーブルにインポートするときに、この一時的な列を無視すればいいのです。
関連
-
SQL Server 2005のすべてのテーブルで、特定のカラムを検索する方法
-
SQL ServerにおけるRAISERRORの使用詳細
-
Microsoft Sql server2005 のインストール手順のグラフィック詳細とよくある問題の解決法
-
SQL Serverは、SET FMTONLY ONでテーブルのメタデータを取得する
-
SQL2005 ビューデッドロック ストアドプロシージャ sp_who_lock
-
SQL Server 2005のデータベースでtempdbの場所を変更する方法
-
SQL Server 2005 の SQL 文の時限実行方法について
-
win2003 ServerでSQL Server 2005のリモート接続を設定する方法
-
sql2005 ローカルコンピュータの SQL SERVER サービスが起動し、その後停止する 解決方法
-
Sql Server 2005 のポート 1433 で LAN アクセスを開放し、リモート接続を行う。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
sql server null を設定するためのいくつかの提案
-
複数注文の場合の償却額の計算方法について
-
SQL server 2005で自動番号フィールドを設定する方法
-
SQL 2005が設定できない問題を解決する
-
WIN7でSQL Server 2005 Express Edition(Lite)のインストールと設定
-
SQL2005インストール時のバージョン変更チェックでSKUPGRADE=1が発生する問題の解決法
-
SQL server 2005 をインストールすると、32 ビット ASP.NET は既に登録されているので、64 ビットのソリューションを登録する必要があるとの警告が表示される。
-
文字列中の最大の部分的インクリメンタルを計算する SQL メソッド
-
SQL Server Connect to Server Error 233 の解決法
-
SQL Server 2005 と sql 2000 の間のデータ変換方法