如何使用sqlcmd.exe调用带参数的存储过程?

时间:2011-06-19 21:05:24

标签: sql-server stored-procedures powershell sqlcmd

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

2 个答案:

答案 0 :(得分:13)

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

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

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

答案 1 :(得分:2)

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

示例:

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