Vin*_*vel 0 sql-server powershell
我的本地机器中有一个脚本文件。我必须打开 SSMS 并在 SSMS 中打开查询并执行查询。
为了打开 SSMS 和查询,我使用了以下 PowerShell 脚本来完成它。
ssms.exe 'E:\PowerShell_PROD\Screenshot\ServerDetails.sql' -E -S localhost
Run Code Online (Sandbox Code Playgroud)
如何使用 PowerShell 运行此查询以及如何关闭此查询窗口?
我这样做的原因是我必须获取 SQL Server 属性和其他信息的证据。为此,我有一个 PowerShell 脚本来捕获屏幕截图。
我正在准备 PowerShell 脚本,该脚本在 SSMS 中运行每个查询并捕获结果并保存到指定路径。现在可以在 SSMS 中打开查询并捕获屏幕截图,但我无法运行查询。
您可能不应该这样做,但可以使用SendKeys模拟用户活动。
将击键发送到活动应用程序。
这做你想要的:
add-type -AssemblyName System.Windows.Forms
ssms.exe 'c:\temp\test.sql' -E -S localhost
# wait to make sure the application is open
start-sleep -Milliseconds 10000
# press F5
[System.Windows.Forms.SendKeys]::SendWait("{F5}")
# wait for the query to finish
start-sleep -Milliseconds 10000
# press ALT-F4
[System.Windows.Forms.SendKeys]::SendWait("%{F4}")
Run Code Online (Sandbox Code Playgroud)
我不明白您为什么要使用 SSMS 进行无人值守的脚本执行。
根本没有附加值。
你会使用sqlcmd吗?
sqlcmd -Q 'E:\PowerShell_PROD\Screenshot\ServerDetails.sql' -E -S localhost
Run Code Online (Sandbox Code Playgroud)
Invoke-SQLCmd -ServerInstance localhost -Query 'E:\PowerShell_PROD\Screenshot\ServerDetails.sql'
Run Code Online (Sandbox Code Playgroud)
这几乎是同一件事。引用文档
Invoke-Sqlcmd cmdlet 运行包含 SQL Server SQLCMD 实用程序支持的语言和命令的脚本。
| 归档时间: |
|
| 查看次数: |
2905 次 |
| 最近记录: |