0

当我尝试使用 Microsoft.SqlServer.Dac.Extensions.dll - DacPackageExtensions.BuildPackage() 方法构建时,我需要将多个 dacpac 合并到一个 dacpac 中,因此使用示例 ( http://dacsamples.codeplex.com ) ,我得到与未解决的对不同位置的未命名对象的引用有关的错误。但是,如果我使用 VS2015 IDE 构建,那么我不会收到此类错误,大概是同一件事?有任何想法吗?

Microsoft.SqlServer.Dac.DacServicesException 未处理
HResult=-2146233088 消息=无法将包保存到文件。模型存在构建阻塞错误:错误 SQL71501:验证元素时出错 [lr].[Sample]:视图:[lr].[Sample] 对未命名对象有未解析的引用。错误 SQL71501:验证元素 [lr].[Sample] 时出错:视图:[lr].[Sample] 具有对未命名对象的未解析引用。错误 SQL71501:验证元素 [lr].[Sample] 时出错:视图:[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
4

1 回答 1

0

现在有一个选项可以避免这些误报。
如果您使用静态方法LoadFromDacpac( doc ) 而不是 的构造函数TSqlModel,则带有ModelLoadOption参数的签名。如果您指定此对象true的属性LoadAsScriptBackedModel( doc ),则误报消失

于 2020-08-05T16:08:46.043 回答