В приведенном ниже сценарии powershell я пытаюсь выполнить оператор вставки SQL в транзакции и попробовать / перехватить.
Нет ошибок, и я устанавливаю переменную $Result
со значением 1
в блоке перехвата,до сих пор, когда я вижу значение = 1 Write-Host $Result
[CmdletBinding()]
Param(
[string]$SQLServer='(local)'
)
# Database Update
Write-Host "Update Database" -ForegroundColor Green
& sqlcmd.exe -S $SQLServer -Q @"
USE [Test]
BEGIN TRANSACTION
BEGIN TRY
INSERT INTO DBO.A1 (Name) VALUES ('test1')
COMMIT TRANSACTION
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() as ErrorMessage;
$($Result =1)
ROLLBACK TRANSACTION
END CATCH
"@
Write-Host $Result