misc.log

日常茶飯事とお仕事と

SQL Serverをメンテする作業でAccessを使わない理由

仕事でSQL Serverのデータを確認したり、変更したりすることがあるのですが、この作業にAccessを使う人が結構多くて困っています。いや、できる、できないでいうとAccessで作業はできますし、便利なのもわかるのですが、厳密な調査や確認作業では使いづらい部分があったり、危険な場合があるので私は避けています。

自分用のまとめもかねていくつか理由を考えてみます。

データ変更の危険がある

以前、ある仕事で謎のデータができるという事件がありました。有るデータの列の内容が消えてしまうというものです。日付だったかな。その時はOracle 8iを使った案件だったのですが、お客様が業務データの確認にAccessを使ってデータ閲覧をしていたのですね。で、どうやらテーブルにAccessをリンクした状態で、データを消してしまったようなのです。

特にトランザクション処理も行われず、リアルタイムにデータを反映させてしまうAccessが怖いので、それ以来、できるだけAccessでデータベース、特に本番データベースを触ることは避けるようにしています。

厳密な精査ができない。Nullなのかどうなのか

AccessSQL ServerのNullが設定されている項目を見た場合に、空文字とNullの区別がつきません。ま、システムのデータがNullを取りうることの是非というのは別途議論の余地がありますが、なんにせよ我々は綺麗ではないデータベースだってメンテせざるを得ない場合があるのです。というわけで、パッと見て内容が判別しづらい表示をするツールは正直、手間がかって使えません。

あ、Accessが内部でNullを認識していないとかそういう話ではないのですよ。あくまで「手軽にテーブル内容を見ようとしたら、初期状態では識別できない」というだけです。レポート形式できちんと出力するようにすれば判断は可能です(ただ、そんな定型作業ばかりやっている現場ではないので、その方式はちょっと使えません)。

Accessが使えない環境がある

御存じのとおりAccessMicrosoft Office製品群の1つですが、OfficeのエディションによってはAccessが使えない場合があります。なので、Accessでないと使えない、というようなエンジニアさんは正直、客先にオンサイトで入り込んでのメンテや、いろんな環境~の作業の際に使えません。いや、マジで使えません。

社内SEのような特定の環境だけで仕事ができるハッピーな人たちならそれでもいいのですが、あちこちで向いて仕事をしたりする可能性があるのであれば、やはり道具は選べない想定で作業をしておくべきです。

この理由があるので、データのバックアップなどを一時的にエクスポートで取るような場合も私はAccessは使いません(結構Accessを使う人がいる)。


とまぁ、とりあえずこんな感じかな。