【发布时间】:2011-09-18 07:22:15
【问题描述】:
我需要调用一个存储过程并从 Powershell 传入参数。我认为最好的选择是使用 sqlcmd.exe,但我不确定如何使用此工具将参数传递给存储的 proc。
【问题讨论】:
标签: sql-server stored-procedures powershell sqlcmd
我需要调用一个存储过程并从 Powershell 传入参数。我认为最好的选择是使用 sqlcmd.exe,但我不确定如何使用此工具将参数传递给存储的 proc。
【问题讨论】:
标签: sql-server stored-procedures powershell sqlcmd
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。
【讨论】:
Invoke-Sqlcmd cmdlet 允许您在 Windows PowerShell 环境中运行 sqlcmd 脚本文件。您可以使用 sqlcmd 执行的大部分操作也可以使用 Invoke-Sqlcmd 完成。
例子:
$myparam = "..."
Invoke-Sqlcmd -Query "EXEC sp_myproc $myparam" -ServerInstance "MyComputer\MyInstance"
【讨论】: