AccessのデータをSQLSERVER(MSSQL)でコンバートした話

2020年1月30日木曜日

シリーズ目次

背景

私の勤め先は、Accessが基幹システムマスターはExcel保存、とシステムと呼ぶにはあまりに脆弱な構成

なのでこれらを作り直すプロジェクトを進行中です。
まずマスターを新しいレイアウトにして、すべてデータベースサーバーへ移します。
そのためのデータコンバーターを、SQLSERVER(MSSQL)メインで作った話です。

仕組み


ファイルサーバー上にあるAccessをローカルPC上にコピー、AccessのテーブルをSQLSERVERへインポート、ストアドを走らせてデータコンバートし、CSVへ出力。
これらをPowerShellをトリガーにして、SQLSERVERのストアドですべて処理っていうだけの仕組みなのですが、自分なりに工夫した点として、

・Accessインポートをストアド化
 →毎回GUIからポチポチしてインポートしなくて済む!
・C#で書いたDLLを使用したスカラー関数の作成
 →C#のひらがなカタカナ変換や全角半角変換の関数を使える!
  データベースが苦手な部分の処理を補完できる!
・CSV出力のbcpコマンドをストアドから投げる
 →PowerShellでは結構めんどいけど比較的スッキリ書ける!

ってところが売りです。
えーぶっちゃけ先人たちの知識を寄せ集めて作ったもので大変恐縮なのですが、
こうやってまとめて使えばそれっぽく便利なシステムができまっせ、っていう話です!

この他にもデータコンバートする際に使ったSQLなんかも紹介していくつもりですー

今回想定するインポートテーブル構成はこんな感じ(サンプルを考えるのめんどかったのでシンプルになりましたが、これだとデータコンバートする意味ないかなw)







これを前提として進めていきますね!

・・・・いろいろ企画しては投げっぱなしになってますが、今回のシリーズはやり切るつもりなのでよろしく!