【发布时间】:2012-01-09 15:47:19
【问题描述】:
我一直在为 VS2010 中的 SQL 2008 R2 数据库服务器新设置的数据库项目苦苦挣扎。我不是数据库开发人员/管理员,但由于 IT 中的事情经常发生在我的办公桌上。
我使用 SSMS => 任务 => 生成脚本功能为表、视图、存储过程和函数创建了脚本。无论我为脚本生成选择哪个选项,我总是会遇到一些问题,即一旦我使用 IF NOT EXISTS 选项,我就会收到一个 SQL03070 错误,说 “此语句是在这种情况下无法识别。”。
当我将 CREATE [...] 更改为 ALTER [...] 时,我也会遇到同样的错误。在Microsoft's Connect Website 上的帖子之后,这是预期的“数据库项目不允许更改,因为它将动态确定是否需要针对特定数据库目标执行 ALTER 或 CREATE。”我很好,但是当我从上下文菜单中选择 Execute SQL 时,如果数据库中已经存在特定对象,我确实会收到错误 - 我希望在这种情况下动态生成 ALTER 语句。
不幸的是,由于数据库中有很多遗留代码/对象,我无法创建或运行完整的部署脚本,所以基本上想法是使用带有 TFS 的 VS2010,以便在更改时至少具有源代码控制的一些优势数据库中的对象。
总是遇到错误 SQL03070 虽然不是一个真正的选项,并且从 VS2010 中使用 Import Database Objects and Settings 导入数据库也无法按预期工作,因为我没有单个文件例如一个表定义(带有键、索引等),但有多个难以处理的文件。
最后一个选项,将脚本的 Build Action 设置为 Not in Build 会导致无法对这些文件运行代码分析,我们也希望这样做做。
所以基本上我的问题是,对于我们在 VS2010 中使用数据库项目/TFS 而不出现 SQL03070 错误但启用代码分析的设置来说,最好的方法是什么?如果我的问题的某些方面可能不够清楚,我确实感到很困惑并道歉,请随时询问更多详细信息,我会尽力回答。
提前致谢
G.
【问题讨论】:
标签: sql visual-studio-2010 database-project