ラベル MicrosoftSQLServerMigrationAssist の投稿を表示しています。 すべての投稿を表示
ラベル MicrosoftSQLServerMigrationAssist の投稿を表示しています。 すべての投稿を表示

2012年2月24日金曜日

[ACCESS→SQLServer]MicrosoftSQLServerMigrationAssist使い方

MicrosoftSQLServerMigrationAssistの主な使い方①。

ウィザードが始めに立ち上がるのでそれに沿って行なえばいいのだが、
ウィザードで行なっていることは以下の手順。


①新しいプロジェクトを生成する。
 [File]→[New Project]→[プロジェクト名入力]ボタン



②変更するACCESSファイルを登録する。(複数OK)
 画面上の[AddDatabases]ボタンから、ACCESSファイルの場所を指定する。

③データ移管先のSQLServerを登録する。
 画面上の[Connect To SQLServer]ボタンから、SQLServerを指定する。


④データ移管するファイルorテーブルを選択する。

 ②で指定したACCESSが画面左上に表示されていると思います。
 ここを展開していき、移管したいテーブルにチェックをつけましょう。
 「×」がついているテーブルは(おそらく)リンクテーブルだったりして、
 状況によってはデータ取り出せないよ!というマーク。
 ちなみにテーブルを選択していると右にテーブルのデザインが表示されるのでチェック。
 

そのうち②へ続く。

2012年2月17日金曜日

[ACCESS→SQLServer]"YES/No"型と"bit”型(修正版)

ACCESSの"YES/No"型をSQLServerに移管するときは"bit"型を採用します。

"YES/No"型では0(No)と0以外=-1(Yes)で扱われますが
"bit"型は0(False)と0以外=1(True)で扱われます。

この"bit"型、閲覧モードでみるとFalseやTrueで表示されますし、
実際プログラムを組む際はFalseやTrueで指定しないと構文エラーになるそうな。

パッと見は【0と-1データ】が【0と1データ】に変換されるので調整が必要??とか思いそうだが
bit型はなかなかうまくできています。

「0以外」という所がミソで、
今まで通り-1(Yes)を入力しても、bit型は1(True)として処理してくれます(0以外だから)。
もちろん、True,Falseで入力すれば間違いはないんだけど。
と、いうことで入力処理は問題なさそう。

しかも、ACCESSでリンクテーブルを貼ってSQLServerを見た場合、
1(True)→-1(Yes)として表示されるではないか。従来に合わせて。


つまり、ACCESSモジュール部分で、
MySet!フラグ = -1
という表記がしてあるのは問題ないんです。

と、いうことで出力判定処理も問題なさそう。



あとの問題はデータを読み込むときのSQL文…
どうやら以下の現象になるみたい。(追記)


ACCESSから作成するSQL文を  ~WHERE  フラグ = True " としている


ACCESSから作成するSQL文を  ~WHERE  フラグ = Yes " としている
(SQLServerに投げるときにTrueに変換してくれている模様。でも今時キモチワルイ)


×ACCESSから作成するSQL文を  ~WHERE  フラグ = -1 " としている
(ACCESSでは-1と出てる癖に!
 実際にSQLServerにSQL文投げるときは1(てかTrue)にする必要があるみたい)




SQL文の部分はやはり修正する必要ありです。




入力値 ACCESS SQLServer
-1 -1(YES) 1(True)
0 0(No) 0(False)
1 -1(Yes) 1(True)
True -1(Yes) 1(True)
False 0(No) 0(False)
Yes -1(Yes) #Err
No 0(No) #Err

出力値 ACCESS表示 SQLServer表示
1(True) -1(YES) 1(True)
0(False) 0(No) 0(False)



2012年2月16日木曜日

[ACCESS→SQLServer]MicrosoftSQLServerMigrationAssistインストール

ACCESSからSQLServer移行時は
MicrosoftSQLServerMigrationAssistを使ってデータ移行するのが無難かと。




以下、インストール方法。

①まずはインストールするにはACCESSRuntimeが必要。
(すっとばしてもMicrosoftSQLServerMigrationAssistインストール時に警告がでます)
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=57a350cd-5250-4df6-bfd1-6ced700a6715

②MicrosoftSQLServerMigrationAssistダウンロード
  (Ver4.2では、SQLServerのバージョンによってファイルが異なります。Ver5以降は同じファイルで良いみたい。)
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=959

③ダウンロードしたファイルよりインストール開始。
はじめにアカウント認証ファイルを聞いてきます。
  登録だけ行なう必要があるので警告で出てきたリンクをクリックしてアカウント登録。
  登録後にダウンロード出来た認証ファイルをデフォルトの場所に置き、次へ進みます。
 ↓
 あとはデフォルトインストール設定で特に問題なし。完了。

[ACCESS→SQLServer]MicrosoftSQLServerMigrationAssistを使ってACCESS→SQLServerへ移管する。

ACCESSからSQLServerへテーブルを移管する際の手段としては…

①SQLServer側からACCESSをインポート
→キーやインデックスが移管されない


②【Microsoft Access Upsizing Tools】をダウンロードして、実行
→エラーが発生することがある。97の場合どうも明確なエラー回避方法が見当たらない。


③【MicrosoftSQLServerMigrationAssist】をダウンロードして実行
→と、いうことでちょっと難しいけどこれがオススメ。