我正在尝试在远程服务器上调用一个存储过程(Ola的维护脚本!)(代码的这部分是有效的),并且SP的输出是DBCC CHECKDB的结果(因此它在消息选项卡中)。
我试图编写一些代码将此消息输出捕获到远程服务器上的文件中,但该文件未被创建,尽管SP已成功完成。
$OutputFile = "\\XXX\E$\SQLAdmin\DatabaseCheckDB\ScriptOutput\ScriptOutput.txt"
$handler = [System.Data.SqlClient.SqlInfoMessageEventHandler] {param($sender, $event) Out-File -filepath $OutputFile -inputobject $event.Message };
$SqlConnection.add_InfoMessage($handler);
$SqlConnection.FireInfoMessageEventOnUserErrors = $true;
$SqlConnection = new-Object System.Data.SqlClient.SqlConnection("Server=XXX;DataBase=master;Integrated Security=SSPI")
$SqlConnection.Open() | Out-Null
$cmd = new-Object System.Data.SqlClient.SqlCommand("dbo.DatabaseIntegrityCheck", $SqlConnection)
$cmd.CommandType = [System.Data.CommandType]'StoredProcedure'
$cmd.Parameters.Add("@Databases","ALL_DATABASES") | Out-Null
$cmd.ExecuteNonQuery() | Out-Null
$SqlConnection.Close()
有人能看出我在这里做错了什么吗?谢谢您的帮助!
.ExecuteNonQuery()
仍然允许信息消息返回吗? - Aaron Bertrand