programing

powershell: invoke-sqlcmd에 의한 오류 원인을 잡는 방법?

yellowcard 2023. 11. 1. 22:16
반응형

powershell: invoke-sqlcmd에 의한 오류 원인을 잡는 방법?

invoke-sql에 이상이 있으면 잡고 싶습니다.하지만 다음 명령을 실행하면 $sql이 잘못되면 잡을 수 없습니다.이 예외를 어떻게 잡습니까?

 try {
     Invoke-Sqlcmd -Query $sql -ServerInstance t1 -database db -QueryTimeout 65535 -ErrorAction 'Stop'
   } catch{
      "error when running sql $sql"
   }

test.ps1이라는 스크립트를 사용하면 문제가 없습니다.

add-pssnapin SqlServerCmdletSnapin100
get-host
$sql = "selects * from syscomments"
$server = ""
$database = ""
$username = ""
$password = ""
try {
    Invoke-Sqlcmd -Query $sql -ServerInstance $server -database $database -QueryTimeout 65535 -ErrorAction 'Stop' -username $username -password $password
} catch {
  "error when running sql $sql"
  Write-Host($error)
}

그리고 출력은

PS C:\> .\test.ps1
Name             : ConsoleHost
Version          : 2.0
InstanceId       : 9ac019da-97bd-45d1-bfa5-65fb4d376dc6
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-AU
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

error when running sql selects * from syscomments

Incorrect syntax near '*'.

어떤 입력 파라미터를 사용하고 있습니까? 파워셸 1 또는 2를 사용하고 있습니까?

언급URL : https://stackoverflow.com/questions/4766250/powershellhow-to-catch-the-error-cause-by-invoke-sqlcmd

반응형