无法从TFS部署数据库

时间:2010-04-09 11:53:32

标签: database visual-studio tfs

将一个复合数据库解决方案从TFS部署到我的本地sql安装时遇到了一个非常棘手的问题。

我想知道是否有人可以提供建议?感谢

Team Foundation Server中的复合数据库项目。 MarketRisk和MarketRisk_Structure。两者都引用了另一个名为DataMirror的数据库。

MarketRisk_Structure包含一个视图vwLiveTrades,其脚本为:

SELECT     * FROM       [$(LSRV_ENQ)].[$(DataMirror)].dbo.AS400_Positions 

在MarketRisk_Structure项目中,引用中有对DataMirror的引用,对于DataMirror和LSRV_ENQ(链接服务器),还有SQLCMDVARS中的变量。

在MarketRisk项目中,引用中有对Datamirror的引用,对于DataMirror和LSRV_ENQ(链接服务器),也有SQLCMDVARS中的变量。

我认为我在两个项目中都需要DataMirror ref和LSRV_ENQ ref,因为MarketRisk中的sprocs会调用链接服务器,而MarketRisk_Structure中的视图会调用链接服务器。

我不知道这个循环引用是否会引起以下问题:

MarketRisk.dbschema(0,0)Error TSD00563: This deployment may encounter errors during execution because [dbo].[spRetrieveSingleIntraDayTradeFromLive] depends on [dbo].[vwLiveTrades].[OptionPremiumDueDate] and [dbo].[vwLiveTrades].[OptionPremiumDueDate] does not exist in the target database.

我收到很多这些错误,都是因为MarketRisk中的spRetrieveSingleIntraDayTradeFromLive试图引用MarketRisk_Structure视图中的列。

MarketRisk.dbschema(0,0)Error TSD01234: Plan verification encountered errors; deployment cannot continue.

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,但由于它是一个有数千个“警告”的遗留数据库,我无法真实地摆脱所有警告。 TSD01234错误是由项目的.sqlDeployment文件中的“验证部署”设置检查引起的(它是“高级选项”下的最后一个)。禁用验证部署选项后,我能够生成部署脚本。

答案 1 :(得分:2)

对于遇到此问题的任何人:

我通过显式命名视图中的所有列来解决。部署不喜欢通配符。

此外,需要将MarketRisk_Structure的Deploy属性中的Target Database Name设置为“MarketRisk”。

此致 格雷姆

相关问题