Sam*_*abu 3 sql-server powershell powershell-2.0
我们使用Invoke-sqlcmd cmdlet使用powershell执行SQL查询.
如果SQl服务器实例被指定为错误则抛出异常.
虽然我已经在try catch中捕获了错误,但它仍然在控制台中抛出异常
"Invoke-Sqlcmd:建立与SQL Server的连接时发生与网络相关或特定于实例的错误"
try {
$Qresult= Invoke-sqlcmd -query $SelectQuery -ServerInstance $srvInstance
$Qresult = $Qresult| % { $_.$columnName+"`n" }
LogWrite "$Qresult`n"
}
catch {
Write-error "Error occured when executing sql $SelectQuery"
LogWrite $Error[0]
}
Run Code Online (Sandbox Code Playgroud)
如何验证SQL Server实例是否可用并且在执行任何查询之前它是否正在运行?
function SQL-Ping-Instance
{
param (
[parameter(Mandatory = $true)][string] $ServerInstance,
[parameter(Mandatory = $false)][int] $TimeOut = 1
)
$PingResult = $false
try
{
$SqlCatalog = "master"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $ServerInstance; Database = $SqlCatalog; Integrated Security = True; Connection Timeout=$TimeOut"
$SqlConnection.Open()
$PingResult = $SqlConnection.State -eq "Open"
}
catch
{
}
finally
{
$SqlConnection.Close()
}
return $pingResult
}
if (SQL-Ping-Instance $srvInstance)
{
$Qresult= Invoke-sqlcmd -query $SelectQuery -ServerInstance $srvInstance
$Qresult = $Qresult| % { $_.$columnName+"`n" }
LogWrite "$Qresult`n"
}
else
{
LogWrite "Couldn't contact $srvInstance"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3928 次 |
| 最近记录: |