如何在 Visual Studio 2012 数据库项目下的智能感知中获取表名?

Posted

技术标签:

【中文标题】如何在 Visual Studio 2012 数据库项目下的智能感知中获取表名?【英文标题】:How do I get table names in intellisense under Visual Studio 2012 Database project? 【发布时间】:2013-07-02 20:24:15 【问题描述】:

我们最近将存储过程和函数 SQL 文件的源代码控制从与 SSMS 集成的 VSS 移至 Visual Studio 2012 下的数据库项目。这使我们能够轻松地与 TFS 集成,这是我们的最终目标。

在带有 SSMS 的 VSS 下,我们可以在键入时看到表名、函数名、视图等。但在 Visual Studio 2012 下,我们注意到 Intellisense 不再知道这些特定名称。它确实知道数据库名称和角色,因此我们知道它在某个级别上连接到数据库。

是否有一种简单的方法可以再次启用此功能?我在网上看过,我没有看到很多其他人遇到这个问题/情况。

【问题讨论】:

【参考方案1】:

我找到了解决方案,尽管它并不是我们所希望的。我们希望 VisualStudio 直接从数据库中获取 Schema 信息。 (我们项目中的 SQL 文件仅用于视图和存储过程)。但是,当我们将表和函数导入项目时,它会使用该信息来构建智能感知。

好消息是我们找到了解决方案。坏消息是,当我们的数据库项目之外的进程更改某些表时(我们有一些这样做),那么我们必须记住在智能感知正常工作之前刷新我们项目中的这些模式。

附注:这是一种导入表格、函数等的快速方法,尤其是当您必须像我们必须做的那样偶尔刷新所述对象时。

开始之前,请确定要从数据库中导出的对象类型:表、存储过程、视图或函数。在您的数据库项目下为您要导出的每个项目创建一个文件夹。

在 SSMS 中,打开数据库服务器并右键单击要使用的数据库实例。转到 Tasks -> Generate Scripts ... 从那里选择特定的数据库对象。在此示例中,只想提取表。选择“表格”,其他的都不要勾选,然后点击下一步。

在此屏幕上,选择“每个对象单个文件”,并为其指定数据库项目下“表”子文件夹的路径。我更喜欢让我的脚本 DROP 和 CREATE 而不是 ALTER,所以单击“高级”并将创建模式更改为“DROP 和 CREATE”。

从这里,只需“下一步”退出所有对话框即可。繁荣!您现在拥有一系列可以包含在项目中的 SQL 文件。这些 SQL 文件将使智能感知能够正常工作,并且您有一个启动板来生成所有数据库对象,而无需从头开始重新构建它们。

【讨论】:

以上是关于如何在 Visual Studio 2012 数据库项目下的智能感知中获取表名?的主要内容,如果未能解决你的问题,请参考以下文章

visual studio 2012中如何查看一个工程需要哪些dll文件???

如何配置 Visual Studio 2012 数据库项目以构建部署 .sql 文件

存在 Visual Studio 2012 的数据库项目吗?

Visual Studio 2012 上的 mySQL 数据源

如何连接到 SQL Server Compact 3.5 文件作为 Visual Studio 2012 中的数据源?

在 Visual Studio 2012 数据库项目中更新数据库架构