如何避免Visual Studio数据库项目中的损坏引用?

时间:2013-10-29 17:04:17

标签: visual-studio database-project

我们最近将一个SQL Server项目移动到Visual Studio数据库项目,但我认为有些错误,因为如果存储的proc引用了无效的表,表别名或列,它将无法构建。只有在语法本身不正确时才会失败。

例如,以下示例很乐意编译(删除了CREATE PROC等),但A,B,C和D不存在。

SELECT A.B FROM C WHERE D = 'nope'

但是这个失败了(正如预期的那样):

SELECT A.B FROM C WHERE D IS 'nope' 

所以我可以很容易地创建一个引用无效列或表的存储过程,直到我尝试部署它才会知道,如果我改变了很多对象而我需要全部或者 - 没有任何部署。这也意味着我无法在没有部署的情况下使用构建服务器验证我们的模式,但我想在尝试另一个之前确保数据库保持正常运行。

我发现最接近的是代码分析(项目 - >属性),但这更适合于最佳实践,而不是捕获错误。

VS无法使用现有的架构文件来检查我的代码是否正确吗?不是这个设计时分析&验证数据库项目的主要卖点?

如果相关,我正在使用VS 2010 Premium。

1 个答案:

答案 0 :(得分:0)

安装SQL Server Data Tools并将数据库项目升级到新的(通用名称)“SQL Server数据库项目”模板。我已经确认,如果有无效的引用,这些项目将无法构建。

只需右键单击项目并单击“升级”选项,即可将数据库项目升级到新模板。我已经完成了几个我的数据库项目并没有遇到任何问题,也没有任何问题调整到新模板,因为UI和结构大致相同。但请记住,任何自动构建过程都需要更新(请参阅here)。