SQL Server 2012 Intellisense问题

时间:2014-02-03 04:05:39

标签: sql sql-server-2012

我的问题是Intellisense没有为我的表格中的列提供完整的自动建议。

以下是一个例子:

sql 2012

正如您在SSMS上看到的那样,它确实为我的表提供了自动建议,但不适用于列。我已经阅读了几篇关于解决一些Intellisense问题的文章,但没有任何帮助。以下是我在本文中介绍的内容:http://www.mssqltips.com/sqlservertip/2591/troubleshooting-intellisense-in-sql-server-management-studio-2012/

任何建议都将不胜感激,谢谢您的时间!

3 个答案:

答案 0 :(得分:1)

IntelliSense无法预测您要从哪个表中进行选择,并且会等到FROM子句中至少有一个表,并且可能只有在您填充列之前指定alias.之前连接或其他多表查询的情况。

这是有充分理由的。想象一下,如果数据库中的20个不同表中有CustomerIDInvoiceID。它应该列出这20次吗?你应该选哪一个?您真的希望所有整个数据库中的列都位于下拉列表中吗?在很多场景中,这将是非常长的列表。在SharePoint,NAV Dynamics等等中也不漂亮。

如果您对原生IntelliSense的工作方式不满意,可以使用第三方工具做您想做的事情,但我不确定您想要的是什么能帮助您更好地工作。

答案 1 :(得分:0)

首先,那是因为在截图时SSMS不知道您选择的是哪个对象。换句话说,当from语句中没有select子句时,它无法猜出您感兴趣的列。如果您尝试在以下select语句中输入列...

select from dbo.Invoices

您将看到SSMS将开始选择您的列,因为您已经指定了from子句,因此SSMS知道如何建议您的列名...因为{{{ 1}}子句

答案 2 :(得分:-1)

这主要发生在数据库中添加任何表或在表中添加任何列时。 这是SQL Server 2012的已知问题。您需要刷新缓存。


您可以使用2种方式实现..

1)您可以刷新IntelliSense的本地缓存。

打开“新建查询”窗口并导航到以下菜单。

编辑> IntelliSense>刷新本地缓存

此快捷键是(Ctrl + Shift + R)

2)重新连接数据库。