布団が俺を呼んでいる

丘山大一のぶろぐ

SSMSで既定の言語を表示した結果とSQLで表示した時に結果が違うことがある

SSMSの表示が正しくないとき(時々あるよね)案件。


問題

SSMSでログインのプロパティを覗いていたら、既定の言語が「Arabic」になっているものがあった。


Arabicかー、珍しいなー、と思ったが引っかかったのでSQLを投げて確認。

select name, default_language_name from sys.server_principals


う~ん、ひとつだけ浮いている方がいますね。
一人だけ素のenglish。ハイ、これがArabicだったログインです。

そしてログインを作っているSQLの中身を見てみたら既定のデータベースを「english」で指定していました。
多分us_englishで指定すべきところをenglishで指定した結果、ログインは作成されたけど言語の一覧にないのでプロパティ画面のコンボボックスがセット処理が正しく走らず、一番上の「Arabic」になったと思われます。
https://docs.microsoft.com/ja-jp/sql/relational-databases/system-compatibility-views/sys-syslanguages-transact-sql?view=sql-server-ver15
※記事投稿時点ではリンク先の表示が崩れてます

ちなみに、他のログインは既定の言語を指定しなかったのでデータベースの規定値を引っ張ってきて正しく設定された模様。


似たようなバグもあったけど

最初、コレかな?と思ったSSMSのバグもあったけどタブン違う。
* https://docs.microsoft.com/ja-jp/sql/ssms/release-notes-ssms?view=sql-server-ver15
* https://feedback.azure.com/forums/908035/suggestions/38236363


教訓

経験上、既定のデータベースの表示がおかしくなることもあるよ!
SSMSは便利だけど、疑問解消・原因調査の際はSQLで!

コメントを書く

布団が俺を呼んでいる | PowerShell ディスクサイズの使用状態をログで吐き出したい

布団が俺を呼んでいる

丘山大一のぶろぐ

PowerShell ディスクサイズの使用状態をログで吐き出したい

自分メモ。
ディスクサイズの使用状態を日時のログで吐き出す。
実際使う時はタスクスケジューラあたりで呼び出す。

Get-PSDrive -Name C | Select-Object @{Name='datetime'; Expression={Get-Date -Format('yyyy/MM/dd')} } , Used, Free | ConvertTo-Csv -NoTypeInformation |Select-Object -Skip 1 |Out-File -FilePath 'Drive_C.txt' -Append

もっと簡単なやり方があったはずだが、「Windows Server 2008R2で動く」という本来あってはならない要件があり、試行錯誤してた結果こんなんを書いていた。


コメントを書く