メモ:PowerShell 7 (Core) で bacpac を import する

NuGet Gallery | Microsoft.SqlServer.DACFx 150.4897.1

NuGet Gallery | Microsoft.Data.SqlClient 2.0.1
が必要。

で、PowerShell 7 で Microsoft.Data.SqlClient を使うには、ちょい注意が。
PowerShell (7.0.2) で Microsoft.Data.SqlClient 2.0 を使用する at SE の雑記
を参考に。

2020/11/16 追記
出なさそう。
違うアセンブリ参照してたみたい。
ちなみに PowerShell 7.0.3 では netcoreapp3.1 の dll を使うと

~ is not supported on this platform.

が出るので注意!

Azure Pipelines の Windows Agent で SQL Server 2019 Local DB を使う

前にこんなの書いてたんですが、Pipelines に代わってから使うの初ということで試してました。
VSTS の ビルドで SQL Server LocalDB を使ってテストしたい - お だ のスペース

んで、今の最新の Windows Agent でバージョン調べてみると…


変わらず 2016SP1 相当。。

前は 2016 でも良かったんですが、今回は 2019 が必要なのでちょい調べてみました。

ここから、Microsoft-hosted agents for Azure Pipelines - Azure Pipelines | Microsoft Docs、こっちに飛んで virtual-environments/Windows2019-Readme.md at main · actions/virtual-environments · GitHub
中身見ると SQL Server インストールされてないみたいです。
Visual Studio 2019 Ent 付属の Local DB なんですかね。

若干諦めてたら、教えてもらいましたー。

Restore SQL Server Express 2019 · Issue #1282 · actions/virtual-environments · GitHub より引用

- task: PowerShell@2
  displayName: Install SQL 2019 Localdb
  inputs:
    targetType: 'inline'
    script: |
      Write-Host "Downloading"
      Import-Module BitsTransfer
      Start-BitsTransfer -Source https://download.microsoft.com/download/7/c/1/7c14e92e-bdcb-4f89-b7cf-93543e7112d1/SqlLocalDB.msi -Destination SqlLocalDB.msi
      Write-Host "Installing"
      Start-Process -FilePath "SqlLocalDB.msi" -Wait -ArgumentList "/qn", "/norestart", "/l*v SqlLocalDBInstall.log", "IACCEPTSQLLOCALDBLICENSETERMS=YES";
      Write-Host "Checking"
      sqlcmd -l 60 -S "(localdb)\MSSQLLocalDB" -Q "SELECT @@VERSION;"

これで 無事 Local DB のバージョンが 2019 になりました。
ダウンロード先が変わらない限りはこれで何とかなりそうですね。

追記 2020/11/13

メモ:Swashbuckle Swagger hide property

How to hide property from displaying in Swagger? · Issue #1230 · domaindrivendev/Swashbuckle.WebApi · GitHub

Query String は、[BindNever] 、他は、[JsonIgnore] でOK。

リクエストのパラメータで、getter しかなくて readonly なのに、readonly として認識してくれない場合は ↓で。
Ignore read only/private setter properties for a POST/PATCH · Issue #138 · domaindrivendev/Swashbuckle.WebApi · GitHub
※readonly なら、UI で実行する時にパラメータに表示されない。

メモ:Dot-Sourcing PowerShell

スクリプト モジュール - PowerShell | Microsoft Docs

Dot-Sourcing って単語がなかなか思い出せないのでメモ。
同じスコープ でそのまま実行する感じ。

$a = "aaa"

# hoge.ps1 で $a = "bbb" と書いてると…
. ./hoge.ps1

# bbb って出る
Write-Host $a

別スコープ(child) で実行するのは、 & Call operator
about_Operators - PowerShell | Microsoft Docs

$a = "aaa"

# hoge.ps1 で $a = "bbb" と書いてても…
&./hoge.ps1

# aaa って出る (child scope で書き換えても変わらない)
Write-Host $a

Dot-Sourcing のスコープについては、
about_scopes - PowerShell | Microsoft Docs

メモ:T-SQL bit 型での order by

スカラー値を返すクエリを書いてて、bit 型の列が複数行返ってくるけど、true 優先で取りたい時に、bit 型そのままだと max、min 使えないので、order by で。
雑なクエリ例

select top(1) [flg] from (
  select cast(0 as bit) as [flg]
  union all
  select cast(1 as bit)
-- union all ....
) _t
order by [flg] desc

bit (Transact-SQL) - SQL Server | Microsoft Docs
bit は、
1、0、または NULL の値をとる整数型です。
なので order by で問題なし。
雰囲気そうなんだけど、ちゃんとドキュメント見ようねっていうメモ。

DO's&DONT's リンク

Microsoft SQL Server Japan Support Team Blog が無くなって、Technet フォーラムに移ってますが DO's&DONT's を人に紹介する機会があったのでついでに直リンメモ。

空き番ありますが、投稿見つからないので移行されなかった?

DO's&DONT's #1: やらない方がいいこと – 運用環境で、Profiler GUI を使用してトレースする
DO's&DONT's #2: 絶対にやらなければいけないこと - データ型を一致させる 前編
DO's&DONT's #2: 絶対にやらなければいけないこと - データ型を一致させる 後編
DO's&DONT's #3: やらなければいけないこと - 非典型的パラメータ値が存在する場合の再コンパイル
DO's&DONT's #4: やらない方がいいこと - クエリの 条件句 (WHERE や JOIN ON 等) で参照されている列の加工
DO's&DONT's #6: 絶対にやってはいけないこと – ストアドプロシージャ内でのパラメータ値の変更
DO's&DONT's #7: やらない方がいいこと - インデックス再構築 (REBUILD) 後のデータファイル圧縮 (SHRINK)
DO's&DONT's #8: やってはいけないこと - インデックス再構築 (REBUILD) 後のインデックス統計情報更新 (UPDATE STATISTICS)
DO’s&DONT’s #10: やらない方がいいこと - クエリの条件句で変数を参照する
DO’s&DONT’s #12: やった方がいいこと - max server memory を設定する
DO’s&DONT’s #14: 絶対にやってはいけないこと - ひとつの CPU に対して affinity mask と affinity I/O mask の両方を ON にする
DO’s&DONT’s #16: やってはいけないこと - ログ配布プライマリデータベースのログバックアップ
DO’s&DONT’s #17: やっておいた方がいいこと - tempdb データファイル数を CPU 数に一致させる

08/29(土) OSC2020 Online/Kyoto で データベース座談会 をします!

OSC2020 Online/Kyoto で 関西DB勉強会として1枠頂き、データベース座談会 をさせていただきます。
データベース座談会 - セミナープログラム - オープンソースカンファレンス2020 Online/Kyoto

MySQLPostgreSQLSQL Server とでちょっとした比較みたいなお話しが出来たら~と準備していますので、ぜひお気軽にご参加ください~。

オンラインでの発表は初めてなのでちょい不安。。

SQLWorld はオンラインでの勉強会開催は計画していませんが、
関西DB勉強会はオンラインでも開催していきそうな方向になっていますので、
今後ともよろしくお願いします~。