我有一个MS SQL 2005存储过程,它接受一个out参数。如何从dos批处理文件中调用它并获取out param的值?我知道我必须使用sqlcmd,但是无法在那里找到任何可以传递out参数并在dos批处理文件中访问它的值。
由于 维克拉姆
答案 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%