Windows 上の SQL Server Management Studio から Ubuntu 上の SQL Server にデータベースを作成し,テーブルを挿入する

 Windows 環境にインストールした SQL Server Management Studio から Ubuntu にインストールした SQL Server にデータベースを作成し,テキストファイルからインポートしてテーブルを作成する方法を紹介する.

 インポートするテキストファイルは今回は日本標準食品成分表 2015 年版を使用する.第一正規形であれば何でもよい.

新しいデータベースを作成する

 「オブジェクトエクスプローラー」の「データベース」を右クリックし「新しいデータベース…」を選択する.

「オブジェクトエクスプローラー」の「データベース」を右クリックし「新しいデータベース...」を選択する
「オブジェクトエクスプローラー」の「データベース」を右クリックし「新しいデータベース…」を選択する

データベース名を決める

 「データベース名」を入力する.

「データベース名」を入力する
「データベース名」を入力する

テキストデータのインポート

作成したデータベースの「タスク」から「データのインポート」

 作成したデータベースを右クリックして「タスク」から「データのインポート…」をクリックする.ウィザードが起動する.

作成したデータベースを右クリックして「タスク」から「データのインポート...」
作成したデータベースを右クリックして「タスク」から「データのインポート…」

データソースの選択

 「データソースの選択」ではFlat File Sourceを選択する.

「データソースの選択」ではFlat File Sourceを選択する
「データソースの選択」ではFlat File Sourceを選択する
該当するテキストファイルを選択する
該当するテキストファイルを選択する

詳細設定で Output Column Width を変更する

 「詳細設定」でFoof and DescriptionのOutputColumnWidthを50から300に増やす.200 ではインポートが失敗した.実際の文字数は 50 未満なのだが,原因は不明である.

「詳細設定」でFoof and DescriptionのOutputColumnWidthを50から300に増やす
「詳細設定」でFoof and DescriptionのOutputColumnWidthを50から300に増やす

変換先の選択では SQL Server Native Client 11.0 を選択する

 「変換先の選択」でSQL Server Native Client 11.0を選択する.これ以外に選択肢はない.

「変換先の選択」でSQL Server Native Client 11.0を選択する
「変換先の選択」でSQL Server Native Client 11.0を選択する

認証を間違えると接続できない

 「認証」がWindows認証のままだとサーバーにログインできない.

「認証」がWindows認証のままだとサーバーにログインできない
「認証」がWindows認証のままだとサーバーにログインできない

エラー画面

 「ログインできませんでした.このログインは信頼されていないドメインからのログインなので,統合認証では使用できません.」というエラー画面が出る.

ログインできませんでした.このログインは信頼されていないドメインからのログインなので,統合認証では使用できません.
ログインできませんでした.このログインは信頼されていないドメインからのログインなので,統合認証では使用できません.

認証を SQL Server 認証に変更する

 「認証」をSQL Server 認証に変更し「ユーザー名」をSAと入力し,パスワードを入力する.

「認証」をSQL Server 認証に変更し「ユーザー名」をSAと入力し,パスワードを入力する
「認証」をSQL Server 認証に変更し「ユーザー名」をSAと入力し,パスワードを入力する

「コピー元のテーブルおよびビューを選択」で「マッピングの編集」をクリック

 「マッピングの編集…」をクリックする.

「マッピングの編集...」をクリックする
「マッピングの編集…」をクリックする

「列マッピング」でデータ型,NULL の許可,データサイズを入力する

 NULL のチェックをすべて外す.データ型は上位4項目は nvarchar 型,それ以外は Float 型にしている.

「列マッピング」でデータの「型」と「NULLの許可」「サイズ」を決める
「列マッピング」でデータの「型」と「NULLの許可」「サイズ」を決める

データ型マッピングの確認

 「データ型マッピングの確認」で「エラー時」「切り捨て時」をそれぞれ「無視する」に変更する.

「データ型マッピングの確認」で「エラー時」「切り捨て時」をそれぞれ「無視する」に変更する
「データ型マッピングの確認」で「エラー時」「切り捨て時」をそれぞれ「無視する」に変更する

パッケージの保存および実行

 何もせずそのまま Next をクリック.

「パッケージの保存及び実行」
「パッケージの保存及び実行」

最終確認画面

 Finish 以外はクリックできないのでクリックする.

「Finish」をクリックする
「Finish」をクリックする

完了画面

 数秒でインポートが完了する.「操作は正常に実行されました」と出れば成功である.

「操作は正常に実行されました」と出れば成功
「操作は正常に実行されました」と出れば成功

オブジェクトエクスプローラーでテーブルの存在を確認

 オブジェクトエクスプローラーでテーブルがあることを確認する.インポートが失敗してもテーブルは作られるため,操作をやり直す際にはテーブルを手動で一旦削除するとよい.

オブジェクトエクスプローラーでテーブルがあることを確認
オブジェクトエクスプローラーでテーブルがあることを確認

実際にクエリを走らせてデータを確認

 テーブルを右クリックして「上位1000行の選択」でデータがあることを確認する.

「上位1000行の選択」でデータがあることを確認
「上位1000行の選択」でデータがあることを確認

 実際のデータを確認してみないと安心できない.

実際のデータが抽出された
実際のデータが抽出された

まとめ

 Ubuntu 環境にインストールした SQL Server に接続してデータベースを作成し,テキストファイルをインポートしてテーブルを作成した.Windows 統合認証ではなく SQL Server 認証を用いる以外は,Windows 環境とほとんど変わりはない.

 データベースサーバーとして Ubuntu 環境を用いることができるのは,OS ライセンス費用がネックとなる環境では非常に魅力的だ.

 Ubuntu 環境では SQL Server Data Tools や Reporting Services を使えないという制約はあるんだけれども.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください