我有许多使用在Visual Studio 2010中正确构建的tSQLt的数据库项目。当我在Visual Studio 2012中打开它们时,我被告知IDE必须进行“功能更改”才能使用它们。 / p>
一旦我完成转换,就不再有任何数据库项目成功构建。相反,似乎tSQLt模式中的任何对象引发了关于sys.objects的错误,如下所示:
{Path}.Database.Messages\Schema Objects\Schemas\tSQLt\
Programmability\Functions\Private_GetConstraintType.function.sql(6,10):
Error: SQL71501: Function: [tSQLt].[Private_GetConstraintType] has an
unresolved reference to object [sys].[objects].
转换似乎没有以任何方式更改命名脚本。这是怎么回事? (我如何调查这样的问题。这很神秘。)
答案 0 :(得分:3)
tSQLt函数 [tSQLt]。[Private_GetConstraintType] 从 sys.objects 中选择,该文件位于 msdb 系统数据库中。
您需要将 msdb (或 master )数据库的数据库引用添加到Visual Studio 2012(数据工具)中的数据库项目。
要执行此操作,请转到解决方案 - >项目 - >参考 - >添加数据库参考(参见下面的屏幕截图)
并添加对系统数据库 msdb 的引用。这应该有所帮助。