在 Visual Studio 2010 中处理 SQL Server 2008 数据库项目时,我向现有存储过程定义添加了一个新参数。当我构建项目时,它未能检测到对项目其他地方的存储过程的引用没有足够的参数。它甚至让我部署项目。
这是它应该表现的方式还是我忘记在某个地方打勾?!
山姆:)
在 Visual Studio 2010 中处理 SQL Server 2008 数据库项目时,我向现有存储过程定义添加了一个新参数。当我构建项目时,它未能检测到对项目其他地方的存储过程的引用没有足够的参数。它甚至让我部署项目。
这是它应该表现的方式还是我忘记在某个地方打勾?!
山姆:)
数据库项目不会检测过程/函数参数的问题。此外,您会注意到您可以从项目中删除有问题的过程/功能,并且不会失败。
就我而言,我使用外部工具来管理可编程性,因此不会因为缺少 proc 而导致构建失败是一个加分项。
如果你想验证你的过程和函数,你可以编写一个 scipt 来使用“SET FMTONLY ON”来执行你所有的存储过程。该过程将被编译,但在执行期间不会对 DB 进行永久性更改。您不能将它与使用临时表(#table 语法)的过程一起使用。
这就是 Microsoft 在 Visual Studio 中确定存储过程的输出应该是什么的方式。
除非您重新运行代码生成向导(通过删除 VS 服务器资源管理器中的存储过程然后将其拖回),否则您的项目不会知道数据库已更改。您可能会收到运行时错误,但不会出现编译错误。
如果它不知道任何更改,它将正常编译。所以是的,它应该表现得那样。