- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 SSIS 2012 中有一个包含大约 150 个包的项目。其中一个是入口点,其余的在主线下的某个地方被调用。如果不存在,他们每个人都会在目标中创建自己的表。我发现我需要将 DelayValidation 设置为 True 才能正常工作,但我讨厌这样做 150 次。有没有办法让这个属性传播或除了更改所有包之外的任何东西?
最佳答案
您可以使用 .NET 库进行此更改。下面是一个 PowerShell 脚本,它查看给定文件夹中的所有包。如果 DelayValidation
属性为 false,则会将其更改为 True 并保存包。
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SQLServer.ManagedDTS") | Out-Null
$folder = "C:\sandbox\StackOverflow\StackOverflow\obj\Development"
$app = New-Object Microsoft.SqlServer.Dts.Runtime.Application
foreach($current in (Get-ChildItem $folder -Filter "*.dtsx").FullName)
{
Write-Host $current
$package = $app.LoadPackage($current, $null)
if ($package.DelayValidation -eq $false)
{
$package.DelayValidation = $true
$app.SaveToXml($package, $null)
}
}
一位用户指出
SaveToXml function needs 3 parameter in SQL Server 2017.
这将使这个 SaveToXml
看起来像
$app.SaveToXml($current, $package, $null)
Documentation表明自 2016 年以来一直如此。
他们进一步指出,
As a Developer without installing SQL Server like me, need located your Microsoft.SQLServer.ManagedDTS.dll file explicitly
这会将第一行的 LoadWithPartialName
替换为具有显式路径的 LoadFile,如
([Reflection.Assembly]::LoadFile("C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSIS\140\Binn\Microsoft.SqlServer.ManagedDTS.dll") | Out-Null)
请注意,具体路径会因您安装的工具而异。我倾向于使用 dir/s/b
(目录、搜索子文件夹、裸格式)命令来查找内容,所以
C:\>cd "\Program Files (x86)"
C:\Program Files (x86)>dir /s /b Microsoft.SqlServer.ManagedDTS.dll
C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn\Microsoft.SqlServer.ManagedDTS.dll
C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies\SSIS\150\Microsoft.SqlServer.ManagedDTS.dll
在这里我们可以看到我有两个 ManagedDTS.dll,它们都用于 SQL Server 的 150(2019?)版本
关于ssis - 更改多个 SSIS 包的 DelayValidation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19366994/
我在 SSIS 2012 中有一个包含大约 150 个包的项目。其中一个是入口点,其余的在主线下的某个地方被调用。如果不存在,他们每个人都会在目标中创建自己的表。我发现我需要将 DelayValida
我是一名优秀的程序员,十分优秀!