2015年05月16日

SQLServer2012をさわる

MCSAはSQLServer2012をターゲットとしている。

もっぱら、DDLに関してはGUIで作っているから、
テーブルの変更クエリを手で書けといわれても、ぱっと出てこない。。
Alter Table、、、その次が続かない。

適当に、Default制約のつけかたや、外部キー制約のつけ方を振り返ってみた。
Alter Table [TableName] Add Constraint [DefaultName]
Default [Value] For [TargetColumn]

Alter Table [TableName] Add Constraint [FK_KeyName]
Foreign Key [TargetColumn] References [RefTable(Column)]
On Delete Cascade
On Update Cascade

Cascadeなのは好みで。
外部キーの参照先は同じデータベースに限られるらしい。
別データベースにしたい場合はトリガーを使うことになる。
自テーブルを参照先にも出来るらしいが、どこかのカラム値がNULLになったら、
こっちもNULLにするみたいに使うのだろうか。。。使っている人はいるの?

上のクエリをManagementStudioで実行したら、
確かに外部キーは作成されたんだけど、On DeleteとOn Updateの指定は無視されたのはなぜだろう。。。
GUIでそこだけ更新してクエリを出したら、ほぼ同じだったのに。
相違点は、外部キー付加のクエリに、WITH NOCHECKが追加されていた。
これは、外部キー制約をつけるときに、既存データの中に制約と合わないデータがないかをチェックしないようにするための指定らしい。(デフォルトはWITH CHECK)
とはいえ、今のところ、データが0件なので、合う合わないもない。
ちなみに、WITH NOCHECKで作ったあとに、
Alter Table [TableName] Check Constraint [FK_Name]でチェックするように戻していた。

一回、Dropしてから再作成したら、意図したように作れたのも謎。

GUIで作ってから、スクリプトを出すのが一番確実か!
posted by 寿 at 11:15 | 愛知 ☔ | Comment(0) | TrackBack(0) | プログラミング全般

2015年05月10日

久々に資格でも取るか

ちょいちょい、やる気になりながら、
あと一歩っぽいところで最近は取れていなかった資格。

去年も2回受験したけど、どちらも落ちていた。

今回、きっかけもあったことだし、
久々に受験だけじゃなくて合格までいってみるかと思い立った。

とはいえ、いきなり言い訳じゃないんだけど、
子供がいると、もう、なかなか自分の時間が作れない。
特に技術系資格は、パソコンにある程度まとまった時間向かないと、
身についてこない。
知識だけだと、まぁ合格はできるかもしれないけど、
せっかく時間と安くない受験料を払うのに、取り組み方が勿体ない。

DBスペシャリスト以来?なのかな、
3年くらい履歴書にかける資格から遠ざかっているから、なんとかしたいね。

MCSAを受けるつもりで、さっき、バウチャーチケットを購入した。
セカンドショットが今月中だから、とりあえず1発目いっておいて、
ダメでも来月いくかという考え。
MCSAを取るには3個も合格が必要。
先は長いな。。。というか資金が。。。
posted by 寿 at 20:56 | 愛知 ☀ | Comment(0) | TrackBack(0) | 日記