最近更新したページ
2013-10-20
2013-09-29
2013-09-23
2012-01-07
2011-11-09
2011-10-23
2011-10-09
2011-10-01
2011-09-29
2011-09-03
2011-08-07
2011-08-02
2011-07-29
2011-07-10
2011-05-05
2011-05-04
2011-04-24
2011-04-13
2011-04-05
2011-03-26
2011-02-18
2011-02-15
2010-12-26
2010-12-07
2010-12-05
2010-11-23
2010-09-28
2010-09-23
2010-08-26
2010-08-22
2010-07-16
2010-01-17
2010-01-11
2009-10-04
2009-08-21
2009-08-13
2009-06-18
2009-06-01
2009-04-29
2009-02-16
2009-02-11
2009-02-03
2008-07-22
2008-07-21
2008-07-15
2008-07-14
2008-07-13
2008-07-12
2008-07-08
2008-07-05
2008-06-28
2008-06-17
2008-06-05
2008-06-02
2008-06-01
2008-05-29
2008-05-26
2008-05-21
2008-05-19
2008-05-18
2007-10-31
2007-10-27
2007-09-28
2007-09-23
2007-09-17
2007-09-16
2007-09-14
2007-09-11
2007-06-18
2007-04-15
2006-12-21
2006-11-30
2006-11-22
2006-08-17
2006-03-29
2006-03-28
2006-03-27

SQL Server:関連メモ(覚え書き)


SQL Server 関連の覚え書き


 SQL Server, SSMSE, Access, Excel, Outlook などデータベース関連での覚書。

ネットワーク接続の有効化


※規定で無効になっている。

  • [スタート] から SQL Server メニュー [構成ツール] → [SQL Server 構成構成マネージャ]
    ※コンパネの[コンピュータの管理]の中にもある。
  • [SQL Server 200* ネットワークの構成] → [サーバー名(エディション・環境で異なる) のプロトコル]
    • TCP/IP を「有効化」にする。→ ※SQL Server の再起動が必要。
  • [SQL Server 200* のサービス] → [SQL Server(サーバー名)] → [再起動]
    • ※実際のネットワーク越しの動作未確認。
  • 停止する場合は逆の操作を行う。

sqlcmd コマンドで cmd 上で SQL 文を実行


  • コマンドプロンプトを起動
  • sqlcmd /E /S サーバー名
    • ここでのサーバー名は、{コンピュータ名\サーバー名} でないと接続できないようである。
  • プロンプトが、[ 1> ] のように表示されたら、SQL 文の実行が可能となる。

既存データベースを表示する SQL 文入力例:
1> use <ターゲットとするデータベース名>
2> select * from <表示したいテーブル名>
3> go

  • Enter 押下でテーブルが適すとベースで表示される。
  • 終了する場合 [ 1> quit ] or [ 1> exit ] で cmd 初期に戻る。quit / exit はデータベース終了時の処理が異なる可能性があるが、未確認。

  • help は、[ sqlcmd ?/ ] or [ -? ] としないと出ないようである。
    スイッチは大文字・小文字で意味が異なる。
    [ /E ] = trusted connection , [ /S ] = server の意味である。


スクリプトをバックグラウンドで実行


 sqlcmd で /i オプションを指定することで 事前に作成した SQL(スクリプト)ファイル(.sql)をバックグラ
ウンドで実行することが出切る。
 ※Oracle SQL*Plus の「@フゔ゗ル名」に相当とのこと。

  • 具体例:以下 SQL 文を C:\sample_sql.sql 等の名前で保存。
use sample_db
select * from sample_table
go
  • cmd で以下のように・・・入力
C:\>sqlcmd /E /S <コンプュータ名\サーバー名> /i "c:\test.sql"
  • test.sql が実行される。


コマンドプロンプト使用上のワンポイント


 コマンドプロンプト(me 以降なら cmd 、以前なら command )使用では、階層が深いととにかく入力が面倒になる。

 C:\ 直下や USB など使うと階層が浅ければ操作が簡単になるが、C:\直下へファイルを直接作りたくない(・・・気分的・・・)とかする場合、仮想ドライブや RAM ドライブを使う等でも便利になる。

 RAM ドライブや仮想ドライブは、フリーソフトがいくつかあるようなので試してみたが、今一つ使いたくない気分・・・。

 ・1) win 認識不能なほど実メモリ積んでれば、RAM driveを積極的に使いたいが、ガンガン使うとスワップが発生するようなメモリ構成では・・・メモリに余裕なし。
 ・2) 仮想ドライブのフリーソフトの一つを使ってみたが、しっくりこない。(何となく・・・)

 Windows には標準で「ネットワークドライブの割り当て」機能があるので、これを利用すると、自PCの共有フォルダを仮想ドライブのように割り当てできる。

  • My Documents 内に "仮想ドライブ" などと名前を付けてフォルダを作成。
  • "仮想ドライブ"を共有設定する。適度にセキュリティの設定をしておくのが良い・・・。
  • メニューから「ネットワークドライブの割り当て」で、ドライブ名 [ Z ] とかにしてネットワークドライブ化。
  • 特別なソフト無しに [ Z:\ ] ドライブが出来上がる。

 ※共有機能を有効にしたフォルダを使用するので、セキュリティ的に低下することに注意。
 ※USB メモリなど常時使用できれば、こんなことする必要もない・・・。

MS Office から SQL Server のデータを利用する


Excel へデータをインポートする


※SSMSE から SQL Server へ接続できなくなるなど、原因不明のトラブルに見舞われる可能性があるため要注意。

  1. [外部データの取り込み] - [新しいデータベースクエリ] - [データソースの選択]が表示される。
  2. [データベース]タブ - [ <新規データソース> ]を選択し [ OK ]
    1. a ). 1 新規データソース名・・・ 適当に・・・ SQL SV(1) とか付ける
    2. b ). 2 アクセスするデータベースの種類・・・ SQL Server を選択
    3. c ). 3 [接続]ボタンで、[SQL Server ログイン]ダイアログ表示
      1. サーバー名:<接続する SQL Server名:コンピュータ名\サーバー名(localhost名\SQLEXPRESS)等> を入力
        ※localhost\SQLEXPRESS では繋がらないようなので、コンピュータ名の正しい指定が必要と思われる?
      2. [オプション]から[データベース]で接続したいテーブル名を選択 - [ OK ]
    4. [新規データソースの作成]ダイアログに戻り 4 データソースの標準・・・は空白でも可(選択しても可)で [ OK ]
  3. [データソースの選択]ダイアログに戻ると、sql sv(1) が登録されているので選択状態のまま・・・ [ OK ]
    1. [クエリ ウィザード - 列の選択]ダイアログ - [クエリに含む・・・]の中から「テーブルと列」を選択
      1. ※[オプション]ボタン - [オーナー] で [ dbo ] を選択すると管理下のテーブルのみ表示される。
    2. 選択 → [ > ] で [クエリの列]へ追加し [次へ] - [次へ] - [次へ] と進む。
      1. ※途中いろいろ設定を変えても良い
    3. [クエリ ウィザードの完了] で・・・
      1. a ). Microsoft Excel にデータを返す ・・・ そのままデータを Excel へ送られる
      2. b ). Microsoft Query でデータの表示またはクエリの編集 ・・・ MS Query 起動 → SQL 編集 → Excel へ送る
      3. c ). このクエリから OLAP キューブ ・・・ ?よくわからない?
    4. a か b を選択、必要に応じ [クエリの保存] を行い [完了]
    5. [クエリウィザード - 列の選択] ダイアログ
    6. [MS Excel への外部データの取り出し] → [ OK ] で Excel のアクティブシートに抽出されたデータが書き出される。

※面倒になってきたので最後のあたり怪しい。
※当然 Access mdb も可能。
※データベースへ直接接続し SQL 文を実行出切る訳ではなく、あくまで excel sheet へデータをエクスポートが出きるだけって仕様のようである。
※SQL Server への接続は、手順間違うと・・・まあ、うまくいかない。
※サーバーの接続設定とか・・・いろいろ弄り回すと、SSMSE / sqlcmd で接続出来なくなったり悲惨な目にあうことになるかも・・・(実際ひどい目に遭った。)

  • この作業が定型的なものなら、[データソースの選択]に登録した sql sv(1) を選択すれば、SQL Server への接続までしてくれるので簡単になる。接続以降のテーブル選択などは必要。
  • 最後に保存した 「SQL SV(1) からのクエリ」を実行([クエリ]タブ)すれば、テーブル選択も不要になり、マウスクリックだけで簡単にデータを抽出できるのでもっと便利。

Access / Outlook へのインポート


 比較的新しいバージョンなら Access へ SQL Server のテーブルをインポートが可能。

 古いバージョンでは出来ないようであるが、SQL Server 側のエクスポート機能(Express は不可と思われる)や、Excel へインポートしたデータなら取り込みが可能なようである。


[ 編集 ] ▲上へ


データベース・SQL文・SQLクエリー(query)関連リンク


参考になる書籍など


 ・SQL Server ・データベース・プログラミングASP.NETSQL全般

  • SQL Server 専門・学習・試験対策の良書





wiki内関連ページ


[ 編集 ] ▲上へ
2009年08月21日(金) 19:31:08 Modified by sakura_momo2




スマートフォン版で見る