SQLのちょっとした小技
SQLで更新や削除を行うとき、私の場合いつもBefore-Afterが
ちゃんと分かるようにしたいので
下記のようにSelect文-Update文-Select文、ほんで最後に
rollbackとコメントアウトしたcommitを入れるのですが、ちなみに使っているのはSQLSEVERです
例)
begin tran
select columnA,* from table
update table set columnA = 'abcd'
where columnB = 'ccc'
select columnA,* from table
--rollback
--commit
これで一旦実行し、before-afterの結果を確認した上で
問題なければ、最後コミットだけ実行します。
このやり方で何も問題ないと思いますが!
エビデンスをスクリーンショットでとっておきたい時って
結果表示されたらスクショ!コミットちゃんとしたメッセージでスクショ!
というように2回スクショが必要になると思います。
ここで小技!!ババン!
文末を下記のように変えます。
rollback; select 'rollback'
--commit; select 'commit'
これに書き換えた状態で先程同様に1発目のクエリを流すと
before-afterが確認できるうえ、最後にrollbackと表示されます。
問題なければコメントアウトを入れ替えてから実行
--rollback; select 'rollback'
commit; select 'commit'
そうするとどうでしょう。こんな感じで
スクショ一発でbefore-afterが見れて、コミットした事も分かります。
エビデンスを毎回とる人には超便利だとおもってます!
【サクラエディタ】全行の末尾にカンマを付ける
これもよく使うのでメモしておこう
Ctrl + R で置換を開き
置換前 $
置換後 ,,,,,
ほんで、実行
(↑私の場合、末尾にカンマを5こ付与したいことが多いので)
逆に、全行の先頭にカンマを入れたい場合は
置換前 ^
置換後 ,,,,,
とすればよし!
【リモートデスクトップ】ロックされてユーザの切替ができない
調べてもなかなか一発でそれらしい答えが見つからなかったのでメモしておきます。
【状況と問題】
iPadでvmware horizon clientを使用して社外からリモートで社内ネットワークに繋いでおり
1台のiPadを複数人で使用している状況。使用した人は、使うたびにログイン・ログオフを欠かさずする。
Aさんがログインしようとしたら、Bさんのユーザ名でロックされているらしく、
「コンピュータはロックされています。 ログインしているユーザだけが解除できます」的なメッセージが表示。
(↑正確な文言じゃないけどニュアンスこんな感じでした)
Aさんはどうやってもログインできない状況で、ユーザーの切替ボタンなども表示されない。
Cさんが試しにログインしたら普通にログインできた。
(↑なぜだろう状態)
【対応方法】
解決方法は、いろいろ調べましたが、下記の方法しかなさそうです。
結局、ロックしているBさんで一度ログインして正常にログオフしてもらう 。
もしこれ以外の方法があったら教えてくださいませ。
ipadを再起動してもだめでした。
【原因】
・たぶんこれ。「ユーザー切り替え。ログオフせずにユーザーを切り替える機能はサポートされない。」
http://www.atmarkit.co.jp/ait/articles/0910/08/news126_3.html
・Bさんがロックしていたら他のユーザは使えない!もともと使いまわすような想定をしていないんですね。
【でもここからが実は重要!!】
Bさんはロックはしていなかった。
→Aさんがvmwareを立ち上げた時にBさんがログイン状態のままになっていたから、
ipadのホームボタン2回押しで上にスライドする動作で、起動しているvmwareをそのまま落としたんだそうです。
そしたらロックされたみたい。
だから、重要なのはvmwareを強制終了させてはダメだったってことですね!!
findコマンドで行数をカウントする方法
これまたよく使うコマンドなので簡単にメモ。
「find」コマンドは「指定したファイルから指定した文字列を含む行を検索し結果を表示」するコマンドです。
で、今回はオプションとして、
/v 指定した文字列を含まない行を全て表示
/c 指定した文字列を含む行の数だけを表示
を指定。
で、
find /v /c "" sample.txt
とするとsample.txtの行数が表示されると。
ファイル名に年月(yyyymm)だけを付与し空ファイルを作成するコマンド
ファイル名でもフォルダ名でもいいんだけど
「ファイル名_yyyymm.txt」みたいな感じで今月のファイルを作成することが多い。
しかもまとめて複数のファイルなりフォルダが欲しい
下記のコマンドは空のファイル「filename_yyyymm.OK」っていうファイルを
コマンドで作成したい時のコマンドである
type nul > filename_%date:~0,4%%date:~5,2%_1.OK
一応解説すると %date% のコマンドは「2017/07/05」の文字列が帰ってくる
これのスラッシュを除き年月だけ取得したい場合は「%date:~0,4%%date:~5,2%」となる
%date:~0,4% 部分が「2017/07/05」の先頭から4文字とる、それと繋げて
%date:~5,2% 部分が「2017/07/05」の6文字目から2文字とる。という意味だ
(先頭の文字を0文字目と数える)
これを応用すればスラッシュを抜いたyyyymmddも簡単である。
%date:~0,4%%date:~5,2%%date:~8,2% となるのである。
ちなみに、末尾から何文字か数えたい場合、マイナス記号を付ければよい
%date:~-10,4%%date:~-5,2%%date:~-2,2%
これでもyyyymmddとなる
WinMergeで差異のみ表示されない原因
まず、最初に、WinMergeで差異のみを表示させたい時の方法は
メニューの表示>Diffコンテキスト から「0」を選択すればよい。
しかし、上記の設定を何度やってもなぜか全行表示されている。。。
結論、全行の末尾に半角スペースが入っていた!
こんな初歩的なワナに10分くらいハマってしまった。チクショー