从现有dacpac重建新dacpac时出错SQL71501

时间:2015-11-17 17:35:08

标签: sql-server sql-server-data-tools sqlproj

当我尝试使用Microsoft.SqlServer.Dac.Extensions.dll - DacPackageExtensions.BuildPackage()方法进行构建时,我需要将多个dacpac合并到一个dacpac中,所以使用示例(http://dacsamples.codeplex.com),我得到的错误与未解析的对不同位置的未命名对象的引用有关。但是,如果我使用VS2015 IDE构建,那么我没有这样的错误,大概是同样的事情?有什么想法吗?

  

Microsoft.SqlServer.Dac.DacServicesException未处理
  HResult = -2146233088 Message =无法将包保存到文件。该模型   有构建阻塞错误:错误SQL71501:验证元素时出错   [lr]。[Sample]:View:[lr]。[Sample]有一个未解析的引用   未命名的对象。错误SQL71501:验证元素时出错   [lr]。[Sample]:View:[lr]。[Sample]有一个未解析的引用   未命名的对象。错误SQL71501:验证元素时出错   [lr]。[Sample]:View:[lr]。[Sample]有一个未解析的引用   未命名的对象。

SQLProj中失败的视图定义的示例:

CREATE VIEW [lr].[Sample]
AS
--
-- $Id: StressExtract.sql 114559 2015-11-11 18:31:50Z sharsl $
-- $URL: https://svc-vcs-prd:18080/svn/apps/RCLMReporting/branches/TransformationCash/Src/SQL/Cil/lr/Views/StressExtract.sql $
--
-- ====================================================================
--
-- Copyright (c) 2000-2009 by Mizuho International plc.
--  All Rights Reserved.
--
-- ====================================================================
--
-- Purpose: View to display StressExtract view .
--
-- Author:  Regulatory ISD
-- 
--
--
WITH TripartyPrestartOverrides AS
(
    SELECT * 
    FROM
    (   VALUES
         ('LiquidAssetBuffer','NonUKGovt','AAA')
    ) AS Overrides ([Col1],[Col2],[Col3])
)
SELECT   *
FROM    [lr].[DataExtract] D
LEFT OUTER JOIN TripartyPrestartOverrides O
    ON  D.[LRSecurityClass] = O.[LRSecurityClass]
    AND D.[TransactionStatus] LIKE 'PRESTART%'
    AND D.[ProductType] = 'TRIPARTYREPO'
WHERE    ([ExclusionFlag] = 'N' OR [DataGroup]='Ledger' OR [BookRef]='SCA/OTHER')
GO

1 个答案:

答案 0 :(得分:0)

现在可以选择避免这些假阳性。
如果使用静态方法LoadFromDacpacdoc)而不是TSqlModel的构造方法,则存在带有ModelLoadOption参数的签名。如果为该对象的属性truedoc)指定LoadAsScriptBackedModel,则假阳性消失了