SQL Server Management Studio(SSMS)にて、インテリセンスを更新する

普段Visual Studioに触れている人がSQL Server Management Studio(以下SSMS)に触れると、(観測範囲では)漏れなく戸惑うことがあります。
「インテリセンスが思うように効かないんですけど!」と。

SSMSにてインテリセンスを更新する

  • SSMS v18.2 を利用しています

SSMSでは新規オブジェクトについてはインテリセンスを自分で更新する必要があります。
以前のVisual Studioもそうだった(VS2012くらいまで?)と思いますが、便利になればなるほど人間はそれが当たり前だと錯覚してしまうのかもしれません。
例えばよくあるパターンで、テーブルを作成した直後に[Object Explorer]->テーブルオブジェクト右クリック*1 ->[Select Top 1000 Rows]を選択すると、下記のようにオブジェクト名が解決できないというエラーが出ます。 f:id:mrgchr:20190914111601p:plain

以前の同僚はSSMSをわざわざ再起動していました。それを見て「なるほど、SSMSではそうしないといけないのか。不便だな」としばらく間違った認識をしていました。
この場合のより良い選択は「インテリセンスのローカルキャッシュを更新する」です。
[Edit]->[IntelliSense]->[Refresh Local Cache] (またはCtrl + Shift + R)で解決します。

f:id:mrgchr:20190914112128p:plain

解決!

f:id:mrgchr:20190914112239p:plain

SSMSはv18からVisual Studio 2017ベースのシェルとなり、この辺りもイイ感じになるかなーと期待していたのですが優先度は低いようです。
あとはフォントのリガチャなんかもあると楽しいですね。

*1:"Tables"を右クリックして"Refresh"するのも最初は戸惑いますね