我需要将多个dacpac合并为一个dacpac,因此使用示例(http://dacsamples.codeplex.com),当我尝试使用Microsoft.SqlServer.Dac.Extensions.dll-DacPackageExtensions.BuildPackage()方法进行构建时,我会遇到与未解析的对不同位置中未命名对象的引用有关的错误。然而,如果我使用VS2015IDE构建,那么我就不会出现这样的错误,大概也是一样的吧?有什么想法吗?
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
现在有一个选项可以避免这些误报
如果使用静态方法LoadFromDacpac
(doc)而不是TSqlModel
的构造函数,则会有一个带有ModelLoadOption
参数的签名。如果为该对象的属性LoadAsScriptBackedModel
(doc)指定true
,则会出现误报