□技術メモ - DB SQL Tips ※管理人の個人的な技術メモです。このページの内容の実行結果について 管理人はいかなる責任も負いかねますのでご自身の責任でお試しください。 ----------------------------------------------------------- DB SqlServer 2008(2014.09.24記) ・クエリ実行はManagementStudioを使用する。 ・デフォルトではCommitが自動発行される。明示的にCommitを発行したい場合は、  ツール - オプション - クエリ実行 - SqlServer - ANSI - SET IMPLICIT_TRANSACTION をONにする。 ・明示的にTransactiion発行したい場合の記述は以下の通り。  begin transaction;  rollback (transaction);  commit (transaction); ・transactionには名前が付けられるので、transactionの階層を作ることができるはず。要調査。 ・nullの扱いについて where句では is null , update文では 項目 = null を使用できる。 ・空文字の扱いについて where句では = '' , update文では 項目 = '' を使用できる。 ・テーブル結合の高速化のために、SQLの最後に option(force order) を指定できる。  指定どおりの連結順にするという意味らしいがどのような場合に効果があるのか? 要調査。 ・joinの前にLOOP, MERGE, HASH を指定できる。(SqlServer2014) ・結合の指定や高速化についてSqlServerは詳細な設定ができるようだがとりあえず今回はここまで。 □バックアップについて ・重要な処理や、実績のない更新処理の前にはバックアップ、復旧の手順確認、テストを行った方がよい。 ・32bit, 64bit環境どちらもディスク上のストレージ形式は同じなので、移行は可能だと考えられる。 ・バックアップ、復旧の方法は、デタッチ→mdf,ldfのバックアップ→アタッチ の方法と、  バックアップ→復旧の方法がある。推奨は後者らしい。 ・オフラインにするとバックアップは取れない。 ・アタッチできない場合の対策  ・SqlServerを管理者権限で実行する  ・mdf,ldfのReadOnlyを外す  ・option設定のread-onlyをfalseにする  ・フォルダ、ファイルのセキュリティ設定にて必要な権限を持たせる。  等々 ・DB名の変更はシングルユーザモードにすると可能になることがある?(要調査) ・テーブルのCSV形式入出力はDBを右クリック→「データのインポートおよびアウトポート」で行う。 -----------------------------------------------------------