从dos批处理文件中调用SQL SP

时间:2011-07-14 14:41:00

标签: sql-server-2005 dos

我有一个MS SQL 2005存储过程,它接受一个out参数。如何从dos批处理文件中调用它并获取out param的值?我知道我必须使用sqlcmd,但是无法在那里找到任何可以传递out参数并在dos批处理文件中访问它的值。

由于 维克拉姆

2 个答案:

答案 0 :(得分:0)

在DOS中,您将获得标准输出的任何信息,但您无法轻易操纵它。这必须是DOS吗? PowerShell是一个选项,因为你有更多PowerShell功能(如果你需要存储这个值而不是在命令提示符中显示它,那么甚至WSH也是DOS的更好选择。)

根据评论添加此内容必须是DOS。以下是我的想法:


首先,我将使用out宏语句指向stdout:

: out stdout

在stdout中输出后,可以使用DOS命令将其指向您在DOS中设置的变量。在DOS中,stdout是句柄1。

我认为可能导致失败的一个问题是,如果其他项目混乱了stdout。我不想解析很多垃圾。

答案 1 :(得分:0)

我一直使用标准T-SQL执行此类操作(如此),但如果编辑存储过程以显示一行结果集,则可以使用存储过程执行此类操作。

sqlcmd -b -S %COMPUTERNAME% -E -d %DBNAME% -Q "exec getXMLLocation;" -h-1 
   -o SearchResult.txt
  set /p URI=<SearchResult.txt
  @echo The XML file URI is: %URI%