この問題は実際にはトリッキーな問題であることが証明されています(そして非常に迷惑です)。
SQL Server Management Studio 2008では、数日前まで、私のIntelliSenseは非常に優れていました。それから突然それは止まった。ツールバーメニューで有効になっているアイコン。[ツール]-> [オプション]-> [テキストエディター]-> [T-SQL]-> [IntelliSense]で、そこで有効になっていることを示しています。
IntelliSenseキャッシュをCtrl-Shft-Rで再メッシュしようとしましたが、それも機能しません。
IntelliSenseに何が起こったのか、それを取り戻すために何をする必要があるのか?
最近VisualStudioをアップグレードした場合は、次のリンクで修正を確認してください。
SSMS 2008 R2のIntelliSense機能は、Visual Studio 2010 SP1のインストール後に機能を停止する場合があります
または、ここから直接修正をダウンロードできます。
IntelliSenseが機能しない可能性はいくつかあります。
IntelliSenseが使用するローカルキャッシュが古くなる場合があります。キャッシュの更新は簡単ですが、必ずしも明白ではありません。
キャッシュを更新するには2つの方法があります。
それでもIntelliSenseが機能しない場合は、IntelliSenseが有効になっていることを確認してください。現在のデータベースのT-SQLクエリエディターウィンドウからこれを確認するには:
また、T-SQLエディターがSQLCMDモードで起動しないことを確認します。チェックする:
私はこの問題を抱えていたので、Ritesh Dのアドバイスに従い、Tools-> Options-> Text Editor-> Transact-SQL-> Generalに行きました。 IntelliSenseを確認したところ、既に有効になっていることがわかりました。
しかし、「メンバーの自動リスト」と「パラメータ情報」のチェックが外れていることがわかりました。だから私はそれらをチェックしました。これは私の問題を解決しました。
これらの2つの機能は、私が「インテリセンス」と考えるものであり、 Microsoftは同意しません :
IntelliSenseは、リストメンバー、パラメーター情報、クイック情報、完全な単語など、多くの機能の総称です。これらの機能は、使用しているコードの詳細を学習したり、入力しているパラメーターを追跡したり、数回のキーストロークでプロパティやメソッドの呼び出しを追加したりするのに役立ちます。
メニューオプションの[ツール]-> [オプション]-> [テキストエディタ]-> [Transact-SQL]-> [全般]-> [IntelliSense]で、[最大スクリプトサイズ]が「無制限」に設定されていることを確認してください。私はこれを行い、インテリセンスは働き始めました
転送接続の少ないリモートデータベースを使用する場合(たとえば、ヨーロッパから遠いアジアのオフィスサーバーに接続した場合)、データベースの構造が小さくない場合(たとえば、多くのテーブル)、SSMSがすべてのIntelliSenseデータを完了するには、さらに時間がかかります。
私の場合、IntelliSenseにアクセスできるようになるまでに1分以上待たなければなりませんでした(低速接続と約1000テーブルのデータベース)。 (SSMSはIntelliSenseの読み込みプロセスに関連する進行状況インジケーターや情報を表示しません)
Azureで提案されているように、パブリックユーザーに対するいくつかの権限を取り消したときに、この問題に気付きました。これは私の問題を解決するのに役立ちました:
use master
go
GRANT EXECUTE ON [xp_instance_regread] TO [public]
GRANT EXECUTE ON [xp_regread] TO [public]
[〜#〜] offline [〜#〜]データベースはintelissenseの動作を停止させる可能性があります。接続サーバーのデータベースをオフラインにして、元に戻すことでテストできます。
SQL 2016バグとして確認できます