【问题标题】:Invoke-Sqlcmd for schema & stored procedure为架构和存储过程调用 Sqlcmd
【发布时间】:2022-01-26 21:24:28
【问题描述】:

我设法使用Invoke-Sqlcmd 执行模式查询,但不确定Invoke-Sqlcmd 是否也适用于存储过程。

命令:

Invoke-Sqlcmd -ServerInstance $SQLServer -Database $DBName
      -Query $QueryString -QueryTimeout $ConnectionTimeout 
      -Username  $Username -Password $Password -ErrorAction Stop -verbose

我可以使用Invoke-Sqlcmd 来执行大块存储过程代码吗?由于命令执行后没有返回状态/结果,有什么好的方法来验证结果吗?

【问题讨论】:

  • 如果存储过程不返回任何东西,你怎么知道它们是否按预期工作?
  • 程序抛出的错误应该反馈给 Powershell,所以 try catch 应该可以工作

标签: sql-server powershell


【解决方案1】:

正如您提到的,“Invoke-Sqlcmd”可用于对 SQL 数据库运行任何查询。 如果您询问如何使用“Invoke-Sqlcmd”运行存储过程,只需将存储过程作为查询字符串运行,如下所示

# if the stored procedure name is "STP_stored_procedure" and accept 2 parameters $param1 and $param2

$QueryString = 'STP_stored_procedure $param1, $param2'

Invoke-Sqlcmd -ServerInstance $SQLServer -Database $DBName
  -Query $QueryString -QueryTimeout $ConnectionTimeout 
  -Username  $Username -Password $Password -ErrorAction Stop -verbose

如果命令失败,屏幕上会显示输出,没有输出表示命令执行成功

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多