0
使用Powershell,我执行一个SQL脚本,该脚本返回SQL Server Management Studio选项卡“消息”中生成的脚本。但是我无法在PowerShell中获得它。如何在PowerShell中获取SQL Server Management Studio选项卡消息?
当我这样做:
$ps = [PowerShell]::Create()
[ref]$e = New-Object System.Management.Automation.Runspaces.PSSnapInException
$ps.Runspace.RunspaceConfiguration.AddPSSnapIn("SqlServerCmdletSnapin100", $e) | Out-Null
$ps.AddCommand("Invoke-Sqlcmd").AddParameter("ServerInstance", "localhost").AddParameter("Database", "MyDatabase").AddParameter("InputFile", "D:\MyScript.sql").AddParameter("Verbose")
$ps.Invoke()
$ps.Streams
$ps.Streams.Verbose | % { $_.Message | Out-File -Append D:\SqlLog.txt }
我得到这个错误:
PS D:\NEMO\Scripts\Database> $ps.Invoke()
Exception calling "Invoke" with "0" argument(s): "Object reference not set to an instance of an object."
At line:1 char:11
+ $ps.Invoke <<<<()
+ CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : DotNetMethodException
谢谢您的帮助。