【问题标题】:How do I call a stored procedure with arguments using sqlcmd.exe?如何使用 sqlcmd.exe 调用带有参数的存储过程?
【发布时间】:2011-09-18 07:22:15
【问题描述】:

我需要调用一个存储过程并从 Powershell 传入参数。我认为最好的选择是使用 sqlcmd.exe,但我不确定如何使用此工具将参数传递给存储的 proc。

【问题讨论】:

    标签: sql-server stored-procedures powershell sqlcmd


    【解决方案1】:

    sqlcmd.exe 通过/v 参数支持变量替换和参数,请参阅Using sqlcmd with Scripting Variables。例如:

    sqlcmd -E -d <mydb> -Q "exec usp_myproc @variable=$(myparam)" /v myparam=1
    

    将调用将值 1 传递给脚本以替换变量 $(myparam) 的过程。请注意,sqlcmd 变量替换是在 sqlcmd 中发生的$(variable) 的字符串替换,用于将批处理(请求)发送到 SQL Server。

    【讨论】:

    • 谢谢,这很有帮助。它应该是一个小写的“v”,所以我为你更正了,否则很好。
    【解决方案2】:

    Invoke-Sqlcmd cmdlet 允许您在 Windows PowerShell 环境中运行 sqlcmd 脚本文件。您可以使用 sqlcmd 执行的大部分操作也可以使用 Invoke-Sqlcmd 完成。

    例子:

    $myparam = "..." Invoke-Sqlcmd -Query "EXEC sp_myproc $myparam" -ServerInstance "MyComputer\MyInstance"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多