我一直在尝试测试构建在SQL Server 2014上的项目(数据库,SSIS,SSAS)是否与SQL Server 2012兼容。我有一个.dproj
以dacpac格式打包,当我尝试从cmd运行:
sqlpackage.exe /Action:Script /SourceFile:"Project.dacpac" /TargetDatabaseName:DBName /TargetServerName:"DBName /p:BlockOnPossibleDataLoss=false /p:RegisterDataTierApplication=true /p:BlockWhenDriftDetected=false /OutputPath:Logs\Output.sql
我收到以下错误:
***无法部署包。内部错误。数据库平台服务,类型为Microsoft.Data.Tools.Sch ema.Sql.Sql120DatabaseSchemaProvider无效。你必须确定 加载了服务e,或者您必须提供a的完整类型名称 有效的数据库平台服务。
我在安装了SQL Server的Azure上创建了一个VM。除此之外,我安装了VS Tools的数据工具。我猜这可能是兼容性问题,但是可能有一个解决方法,而不将DT更改为更高版本?任何可以应用的补丁?
答案 0 :(得分:0)
您可以安装更新的dacfx(sqlpackage),也可以将DAC文件夹从更新版本复制到部署计算机,并使用该DECLARE @DocHandle INT,
@Xml NVARCHAR(MAX)
SET @XMl = N'<root><Salary>0.00</Salary></root>'
EXEC sp_xml_preparedocument @DocHandle OUTPUT, @Xml
SELECT CASE WHEN Salary <> 0 THEN Salary ELSE 10000 END AS Salary
FROM OPENXML (@DocHandle , '/root')
WITH (Salary DECIMAL(18,3), 'Salary')
实例进行部署。
您还可以将项目本身的属性设置为以SQL Server 2012为目标,它将验证T-SQL对于SQL Server 2012是否正确,并允许您部署到它。
在Salary
--------
10000
2012和2014之间有很多修复,所以即使您仍然定位到SQL Server 2012框,我也会将它们移到较新版本的sqlpackage.exe
上。
这只适用于dacpacs,不确定其他项目。