0

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

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

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

4

1 回答 1

0

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

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

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

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

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

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

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

于 2013-07-03T14:55:03.517 回答