【问题标题】:tSQLt projects fail to build in Visual Studio 2012tSQLt 项目无法在 Visual Studio 2012 中构建
【发布时间】:2013-04-16 17:27:45
【问题描述】:

我有许多使用 tSQLt 的数据库项目在 Visual Studio 2010 中正确构建。当我在 Visual Studio 2012 中打开它们时,我被告知 IDE 必须进行“功能更改”才能使用它们。

一旦我让转换完成,就没有一个数据库项目能够成功构建。相反,似乎 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].

转换似乎没有以任何方式更改命名脚本。这是怎么回事? (以及如何调查这样的问题。它非常神秘。)

【问题讨论】:

    标签: visual-studio-2012 tsqlt


    【解决方案1】:

    tSQLt 函数 [tSQLt].[Private_GetConstraintType]msdb 系统数据库中的 sys.objects 中选择。

    您需要将 msdb(或 ma​​ster)数据库的数据库引用添加到 Visual Studio 2012(数据工具)中的数据库项目中。

    为此,请转到 Solution->Project->Reference->Add Database Reference(参见下面的屏幕截图)

    并添加对系统数据库msdb的引用。这应该会有所帮助。

    【讨论】:

    • 是的,我也是这样做的。几个月前我遇到了同样的问题。我蒙混过关并最终解决了问题,但那时我本可以完成您的回答! :)
    • 我还必须在我的预部署脚本中添加“ALTER DATABASE $(DatabaseName) SET TRUSTWORTHY ON”。
    • 哦,我不得不添加对 master 的引用,而不是 msdb,将数据库名称设置为 sys
    猜你喜欢
    • 2012-08-28
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多