言葉にできるは武器なるらしい

言葉に文字に残していきます何事も。いつかきっと誰かの役に立つはずだから。

【SQLServer】batファイルから起動して、SPを呼び出して実行する方法

よく使うのでメモよく使うのでメモ

 


----------------------------------------------

@ECHO OFF


set current=%~dp0set SV=[ホスト名]set DB=[DB名]set US=[ユーザ名]set PW=[パスワード]

REM SPを呼び出して実行するosql -S %SV% -U %US% -P %PW% -Q "EXEC [SP名]"

REM sqlファイルを呼び出して実行するSQLCMD -S %SV% -d %DB% -U %US% -P %PW% -i %current%[sqlファイル].sql -s" " -W -o %current%[出力ファイル名]
REM bcpで直接テーブルを出力するbcp dbo.[テーブル名] out "[出力先パス][出力ファイル名]" -c -S %SV% -d %DB% -U %US% -P %PW%

exit /b----------------------------------------------

 

 

覚えておくと便利

働き方改革とはデグレソサエティである

 


2030年、12年後私は40代になっているが、日本の人手不足は約650万人になるようだ。

 


子育てママにもどうにか在宅とかで働いてもらっても、プラス100万人。

定年退職の延長は不可欠でシニア世代にも働いてもらっても、プラス約160万人。

 


つまり、日本の働ける人が総動員で働いても390万人不足という事態だ。この数字はさらに膨らんで行く。

もうこれは外国人を取り込むとか業務効率化とかで解決できる話ではない。

労働力には限界があるのだから、仕事の量を減らさなければどうにもならない。

コンビニは24時間営業をやめる、山手線は10分に一本、企業の新人採用は毎年行わない、宅配の再配達には料金がかかる。

 


便利に慣れすぎてしまった日本人にとってはストレスかもしれないが、今後はそうした質素な社会、今よりは不便な暮らしに慣れていかなければならない。後継がいない会社の倒産も避け難いのが事実、過疎化した村と村が合併するのと同様に、会社も存続したければ合併するしかないのではないか。

 

 

 

 


参考

2030年の人手不足、644万人 パーソル研と中央大調べ:日本経済新聞

https://www.nikkei.com/article/DGXMZO36810010T21C18A0TJ2000/

家に帰っても安らげないサラリーマン

「なぜ早く帰れないのか」

遅く帰ってご飯を食べて

そそくさと洗いものをして

洗濯物を干して

10分も心休まらない間に

「なぜいつも早く帰ってこれないのか」

と問い詰められる

家に帰っても穏やかな気持ちになれない

結婚って辛いなと感じる瞬間だ

辛くて憂鬱で叫びたくてコップの1つくらい投げ割りたいけど

それもできず吐くに吐けない心の叫びを

こうやって文章に綴る

 

別に早く帰りたくないなんて思ってない。

けど、毎日遅いのはなぜか。

一つ、端的な答えの一つとして単純に”ちょいブラック”である

毎日遅いのは私だけではない。私の隣に座っているリーダーも

他のベンダーのリーダーも、なんなら先方の課長も部長も

リーダー的立場の人はみんな毎日遅いのが常な現場なのだ。

 

一つ、妻が言うように”絶対帰るという気持ちが足りない”

それは確かにある。1週間に1日くらい”今日は絶対帰る”と言い聞かせれば

どうにか帰れる日くらい1日くらいあるはずだ。

それができないのは確かに私の意志の弱さかもしれない。

 

一つ、純粋に仕事量が多い、仕事を降っても仕事が多い。

上に書いたちょいブラックに準ずる内容だが、仕事に適量という言葉があるのなら

やはり今の現場は全体的に仕事やインシデントが多いのだと思う

 

一つ、ただこなす作業ではなく、方針を考えなければならない仕事も多い

同時にその方針や作業内容に対する質問・相談を受けることも多い。

その度に、質問の答え探しや判断をしないといけない。

それを決めないとその人の作業が滞る。

 

朝早く行けば夜早く帰れる

この理屈は通用しない と思われる。

結局仕事が多いから。

 

正直、自分の仕事処理速度が遅いとは

あまり思っていない。

 

最近読んだ記事に

「残業発生」のメカニズムというものがあり

そこには、残業の原因は、「集中」「感染」「麻痺」「遺伝」

と書かれていた。説得力があった。

確かに今の現場では、残業する遺伝子を受け継いだ人が多く、それが感染に感染を重ね、麻痺した状態になっていて、仕事がある特定の人たちに集中している。

そう感じるのである。

つまり戻ってしまうが、やはり”ちょいブラック”というのが

答えに近いのかもしれない。

 

では、転職、異動願い、現場を変えてもらえば

残業はなくなるのか。

これを今は考えている。

【バッチ】SQLserverでバックアップ取得し別サーバに格納する

つかえそうなのでメモメモ
バックアップファイルの出力先や移動先はもちろん任意です

やっていることを簡単に説明すると
まずバックアップを取りたいサーバ上でバックアップを出力した後
容量の大きいバックアップ格納サーバへ移動させて
その際に出力ファイルのログも残す。


★BACKUP_1.bat(バックアップを取りたいサーバ内におくバッチ)

rem バックアップファイルを出力&一部DB圧縮SP実行
osql -S ホスト名 -U ユーザ名 -P パスワード -Q "EXEC インスタンス.dbo.SP名"

rem 移動元バックアップファイル情報出力
echo ホスト名.bak > D:\tmp\bkup.log
dir D:\tmp\ >> D:\tmp\bkup.log

rem バックアップファイル移動
move /Y D:\tmp\*.bak \\移動先ホスト名\e$\backup\

rem 移動先バックアップファイル情報出力
echo 移動先ホスト名.bak >> D:\tmp\bkup.log
dir \\移動先ホスト名\e$\backup\ >> D:\tmp\bkup.log

rem 必要情報をとって、けす
findstr .bak D:\tmp\bkup.log > D:\tmp\DB_BKUP.log
del D:\tmp\bkup.log

exit

 

★BACKUP_2.bat(移動先サーバ内に配置するバッチ)
@echo off

rem 退避用フォルダ作成
md F:Backup\%date:/=%

rem バックアップファイル移動
move /Y E:\backup\*.bak F:Backup\%date:/=%

rem 移動先バックアップファイル情報出力
echo 移動先ホスト名.bak > E:\backup\bkup.log
dir F:Backup\%date:/=% >> E:\backup\bkup.log

exit

 

★BACKUP_3.bat(バックアップを取りたいサーバ内におくバッチ)
@echo off

rem 必要情報をとって、けす
findstr .bak \\移動先ホスト名\e$\backup\bkup.log >> D:\tmp\DB_BKUP.log
del \\移動先ホスト名\e$\backup\bkup.log

exit

 

インスタンス.dbo.SP名(呼び出しているプロシージャ)
set ansi_nulls on
go

set quoted_indentifier on
go

create procedure dbo.SP名
as
begin

--既に存在していたら上書き
--DBごとbackup主億
backup database DB名 to disk = 'D:\tmp\DB1名.bak' with init
backup database DB名 to disk = 'D:\tmp\DB2名.bak' with init
backup database DB名 to disk = 'D:\tmp\DB3名.bak' with init

--一部DB圧縮
dbcc shrinkdatabase(DB1名, 10)
dbcc shrinkdatabase(DB2名, 10)
dbcc shrinkdatabase(DB3名, 10)

end

go

 

いーじょう!

【5分でわかる】ソフトバンク光とAir どっちがいいの?

まず、光とは、Airとは何?

という疑問ですが公式HPには下記のように書かれています。


SoftBank 光とは】

SoftBank 光は、月額3,800円からご利用いただける超高速な自宅のインターネット接続サービスです。便利なオプションサービスやYahoo! JAPANの特典が満載!


SoftBank Airとは】

SoftBank Airとは、箱から取り出して、電源を入れたらすぐにインターネットが楽しめる高速のインターネットサービスです。パケット制限なし!スマホもパソコンも使い放題!Wi-Fi標準装備だから家中みんなでインターネットが楽しめます。


さらにAirは、「こんな方にぴったり」と下記のように書かれています。


どんな部屋にもぴったりWi-Fi

・難しい配線や設定などをしないですぐにネットを使いたい方

光回線工事をしなくてもネット環境がほしい方

ソフトバンク携帯をお持ちで月々のスマホ代を安くしたい方


ということで大きな違いとしては、

「光は工事あり、Airは工事なしだけどAirターミナルという機器が必要」

Airは持ち運び可能!」


AIRはポータブルWiFiの進化形(コンセントが必要だけど!)くらいなイメージですかね。

ほぼ私の中での結論になってしまいますが

Airを選ぶのは工事したくない or 工事できないけどネット環境が欲しい

という特定の状況の人だけかと思います。

普通に家でネット使う分には、価格の面でも通信速度の面でもSB光の方がいいと思います。あと、おうち割光セットはSB光でもAirでもどっちでも付与できるので比較する必要はないですね。


また、戸建てにお住まいの人は月額5200円かかるのに比べてAirの方が月額4880円だし最初の2年間はAir割もつくからお得だろ、

と思うかもしれませんが通信速度が4倍違うというのは結構差があると思うので快適に使いたいのであれば私はSB光の方がいいと思います。


では、ソフトバンク光とAir 金額的にも実際どっちがいいの?に対する比較がこちら。

 

SoftBank 光の費用

月額料金

 マンション  3800円/月

 戸建て住宅  5200円/月

開通工事費

 ※フレッツ光が未導入のお住まいの方 1000円/月(24ヶ月分割払い)

 ※フレッツ光導入済みのお住まいの方 2000円(一括払のみ)

手数料  3000円

通信速度  最大1Gbps

 

----------------------------------------------------------------------------------------------------------

【戸建て住宅×フレッツ光未導入 の方】

 初期費用 ¥9200 (月額5200+分割工事費1000+手数料3000)

 2ヶ月目~24ヶ月目 ¥6200 (月額5200+分割工事費1000)

 24ヶ月目以降 ¥5200 (月額5200)


【マンション住宅×フレッツ光未導入 の方】

 初期費用 ¥7800 (月額3800+分割工事費1000+手数料3000)

 2ヶ月目~24ヶ月目 ¥4800 (月額3800+分割工事費1000)

 24ヶ月目以降 ¥3800 (月額3800)

 

となります。

24か月払い1000円の工事費は最初に一括で24000円支払うことも可能。

また、キャンペーン期間中などに申し込めば工事費24000円がキャッシュバックされることもあるので公式のHPをしっかりと確認するようにしましょう。

 

SoftBank Airの費用

 月額料金 ¥4880/月

 Airターミナル機器 ¥1620/月(36ヶ月分割払い)

 Airターミナル月々割 -¥1620/月(36ヶ月)

 はじめようAir割 -¥1080/月(24ヶ月)

 ※はじめようAir割の適用はキャンペーン期間中に申込した場合です。

 手数料 ¥3000

通信速度 最大261Mbps

 

-----------------------------------------------------

【新規でAirをお使いになる方】

 初期費用 ¥7880 (月額4880+手数料3000)

 2ヶ月目~24ヶ月目 ¥3800 (月額4880-Air割1000)

 24ヶ月目以降 ¥4880 (月額4880)


となります。
Airターミナルはレンタルも可能、その場合¥490/月となり初月だけAir加入特典-490円が適用されますレンタルした場合は当然ですがAirターミナル割はなくなります。

 

と少し長くなってしまいましたが、戸建ての光とAirで比べると値段的にはAirに軍配がありがますが通信速度にどこまで不満を感じなくて済むかだとおもいます

 

【正規表現】n個目のカラムをダブルコーテーションで括る方法

・状況
csvファイルのデータをDBに取込みたい。
だが、csvファイルの中に明細名のカラムが入っていて
「●●明細(1,000円)」
こんな感じで金額表記で明細名が記載されているのため
まさかのカンマがカラム内に存在している。

このまま取込むと、「●●明細(1」と「000円)」にカラムが分かれてしまうためエラーとなる。
なのでどうにか「●●明細(1,000円)」で1カラムとして取込みたい。

csvをtsvに出力し直せるならその方が手っ取り早そうだが、今回はそれはできない。


・やりたいこと
「●●明細(1,000円)」をダブルコーテーションでくくって「"●●明細(1,000円)"」こうすれば1カラムとして取込める。

正規表現で「●●明細(1,000円)」の直前のカンマと直後のカンマをダブルコーテーションをつけて置換する。
(n回目のカンマに"(ダブルコート)をつけて後ろからm個目のカンマに"(ダブルコート)を付ける)


・直前のカンマを置換
 置換前 ([^,]+,){2}
 置換後 $&"

・直後のカンマを置換
 置換前 (,[^,]*){3}$
 置換後 "$&

取込の際は、テキスト修飾子を「"」を指定します(SQLSERVER2008の場合です)
改行コードがLFではNGでCRLFでOKでした

今回ドンピシャでやりたいことがググってもなかなか出てこなかったのでメモメモ。。。

SQLServer 条件ごとに更新の値を変える方法

これは使えるのでメモメモ

 

update A

set A.hogehoge=(case

       when punipuni = '1' then '202'

       when punipuni = '2' then '203'

       else '204'

       end)

from table1,table2

 where とってくるデータの条件