Использовал функцию Sqlcmd в сценарии PowerShell для выполнения нескольких сценариев SQL, чтобы получить результат в виде вывода ssms, но через sqlcmd он не выдает сообщение об ошибке или не может записать метод catch, если какой-либо сценарий SQL содержит ошибку. может зафиксировать ошибку, если какой-либо скрипт имеет ошибку.
с помощью команды Invoke-Sqlcmd. Я не могу записать выходные данные выполнения скрипта, которые SSMS дал после выполнения любого обновления или оператора вставки, такого как «1 строка затронута», поэтому мне нужно использовать команду sqlcmd для выполнения сценариев sql и теперь все записи сценариев перехвачены, но по команде Invoke-sqlcmd, если любая ошибка в сценариях sql переходит в блок catch и показывает ошибку, но когда я использую SQLCMD, если в сценарии SQL есть какая-либо ошибка, она не переходит в перехват заблокируйте его в блоке try и продолжайте.
Так что, пожалуйста, помогите мне теперь, как я могу перехватить и переместить его, чтобы перехватить блок, или я могу перехватить ошибку, как я делал до использования команды Invoke-SQLCMD.
это продолжение этой ссылки:
Не получается вывод после успешного выполнения сценариев SQL через powershell
Вот мой блок кода, и он не собирается перехватывать блок:
Try
{
#$result = "Sqlcmd.exe -S $InstanceNAme -d $dbname -Q ""Insert into [DUR2_A].[dbo].[emp_info] values(1,'Ram','Kolkata')"""
#Invoke-Expression $result | Out-File filesystem::$ScriptOutPutpath$scriptfilesc$out
sqlcmd -S $InstanceNAme -i $scriptfiles1 -o $ScriptOutPutpath$scriptfilesc$out -m1
Move-Item filesystem::$scriptfiles1 filesystem::$Scriptbackuppath
}
catch
{
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.Exception.ItemName
echo "Error for $scriptfilesc - $($_.Exception.Message)" | Out-File filesystem::$error_log$scriptfilesc$errorout
Send-MailMessage -from test@test.com -To IO-SD.GP.test@test.com -SmtpServer mailrelay.test.com -Subject "DUR Error" -Body "Script $scriptfilesc has not been executed becasue of Error Message $ErrorMessage.Kindly check the attachd script and error message" -Attachments filesystem::$error_log$scriptfilesc$errorout,filesystem::$scriptfiles1
Move-Item filesystem::$scriptfiles1 filesystem::$Scriptbackuppath
}