我有這段代碼可以檢查 SSISDB 中是否存在專案。在第一次運行時,我確保專案在那里并且它回傳正確的值。但后來我洗掉了專案并再次運行代碼,但它再次回傳 1。當我重新啟動會話時,它會再次開始回傳正確答案。有什么問題,我該如何解決?
import-module sqlserver;
$TargetInstanceName = "localhost\default"
$TargetFolderName = "FolderForTesting";
$ProjectName = "ProjectTesting";
$catalog = Get-Item SQLSERVER:\SSIS\$TargetInstanceName\Catalogs\SSISDB\
$folder = $catalog.Folders["$TargetFolderName"];
$project = $folder.Projects["$ProjectName"];
if($null -eq $project){
Return 0
} else {
Return 1
}
uj5u.com熱心網友回復:
將我的和Theo的有用評論結合到一個可能的解決方案中:
import-module sqlserver;
$TargetInstanceName = "localhost\default"
$TargetFolderName = "FolderForTesting";
$ProjectName = "ProjectTesting";
try {
$catalog = Get-Item SQLSERVER:\SSIS\$TargetInstanceName\Catalogs\SSISDB\
$folder = $catalog.Folders[ $TargetFolderName ]
$project = $folder.Projects[ $ProjectName ]
if($null -eq $project){
Return 0
} else {
$project.Refresh() # Causes an exception if project actually doesn't exist
Return 1
}
}
catch {
return 0
}
這是基于重繪 SQL Server PowerShell 提供程式和PS SQLPS 重繪 SQL Server 物件和您自己的測驗。我找不到有關該主題的任何官方資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493659.html
上一篇:計算兩個日期之間的作業時間