我的问题是Intellisense没有为我的表格中的列提供完整的自动建议。
以下是一个例子:
正如您在SSMS上看到的那样,它确实为我的表提供了自动建议,但不适用于列。我已经阅读了几篇关于解决一些Intellisense问题的文章,但没有任何帮助。以下是我在本文中介绍的内容:http://www.mssqltips.com/sqlservertip/2591/troubleshooting-intellisense-in-sql-server-management-studio-2012/
任何建议都将不胜感激,谢谢您的时间!
答案 0 :(得分:1)
IntelliSense无法预测您要从哪个表中进行选择,并且会等到FROM子句中至少有一个表,并且可能只有在您填充列之前指定alias.
之前连接或其他多表查询的情况。
这是有充分理由的。想象一下,如果数据库中的20个不同表中有CustomerID
或InvoiceID
。它应该列出这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)重新连接数据库。