2014年12月25日木曜日

MySQLのテーブル一覧を表示する

忘れがちなため、メモ。

MySQL でデータベースに存在するテーブルの一覧を表示するには、
SQL の SHOW 文を使用します。
> SHOW TABLES FROM データベース名

(参考サイト)
テーブルの一覧を表示する
http://mysql.javarou.com/dat/000393.html

2014年12月9日火曜日

EXCELの日付の差分の求め方


特によく使用するのは、こちら。
=(B2-A2)*1440   2 つの時刻の差を分単位で求めます。
=(B2-A2)*86400  2 つの時刻の差を秒単位で求めます。


開始と終了時刻の差分など、使用する機会が最近多い。


参考サイト : 2 つの時刻間の差分を計算する
http://office.microsoft.com/ja-jp/excel-help/HP010070468.aspx

2014年12月2日火曜日

既存テーブルのオートナンバーの割り振り方(主キー以外をキーにする場合)

SQLServerでオートナンバー列を新たに設定するが、
主キーの順番に自動で割り振られるだけ。

今回の主キー以外の順番(登録日時順とか)で割り振りたい場合には、向いていない。

そこで以下の方法を検討した。


↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

1)  ワーク用テーブル「HogeA」を作成する。
※ InsDate(データ登録日時)の昇順で、番号を割り振る。

SELECT 
 PrimaryNo
,InsDate
,ROW_NUMBER() OVER(ORDER BY InsDate ASC) AS sequence
INTO HogeA
FROM MasterA
;


2) 「MasterA」に、デザインからオートナンバー列「sequence(BigInt)」を追加する。
※ このままでは番号は主キーの順番になるだけなので注意!


3) 「MasterA」に、オートナンバー列「sequence」のidentityを「いいえ」にする。


4) 「MasterA」と 1)で作成したテーブルをJOINさせて、再度割り当てる。

UPDATE MasterA
SET MasterA.sequence = HogeA.sequence
FROM MasterA
INNER JOIN HogeA 
 ON MasterA.PrimaryNo = HogeA.PrimaryNo
;


5) 「MasterA」に、オートナンバー列「sequence」のidentityを「はい」に戻す。

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


途中のデータを削除しても、
INSERTする際にはきちんと次の値として採番してくれているため、
問題ないと思われる。


以上

2014年12月1日月曜日

SQLServerのDumpが復元できない!?


> 復元さき
SQLServer2005

> 復元もと
SQLServer2014

・・・という状況で復元しようとしたら、
「メディア ファミリが正しい形式ではありません。」
という見慣れないエラーメッセージが発生した。

はじめはデータが壊れているのかと思った。
しかし調査した結果、そうではない。

「下位バージョンでは、バックアップファイルをリストアできません。」
との情報があり。
解決策はスクリプトにデータを出力するとか。

4GBを超えており、どう考えてもお手軽ではない・・・・。

どうしても必要というわけではないため、諦めることにした。

(参考)
http://nusoft.jp/blog/archives/118