gpt4 book ai didi

sql-server - 将变量从 'list' 传递到 .bat 文件中的 sqlcmd

转载 作者:行者123 更新时间:2023-12-03 03:12:09 25 4
gpt4 key购买 nike

这适用于批处理文件:

sqlcmd -Q "exec sp_mysp @refdate = '2019-04-29'" -S myserver -d mydb -o C:\myfolder\result.csv

但我希望批处理文件循环遍历日期列表,并将每个列表成员作为变量传递给 -Q,而不是对日期进行硬编码,并且输出文件也应以日期开头。

对于我尝试过的一次约会

set inputdate = '2019-04-29'
set "outputfile=C:\myfolder\%inputdate%_result.csv"
sqlcmd -Q "exec sp_mysp @refdate = try_cast(%inputdate% as date) " -S myserver -d mydb -o outputfile

但是出现错误:关键字“as”附近的语法不正确

删除 inputdate 周围的“%”会出现错误消息:“inputdate”附近的语法不正确

使用 @inputdate 会出现错误:'@inputdate' 附近的语法不正确

最佳答案

设置变量的值时,您需要考虑 Windows cmd 如何解释它

示例:

set variable = value

这将从 variable 的开头到 value 的结尾进行解释。因此,给出上面的示例,您现在有一个 %variable % 的变量code>(注意尾随空格)和值 value(注意前导空格)。因此,如果您尝试 echo %variable% ,它将返回 %variable%,因为该变量从未设置过,其中 echo %variable % 将返回一个值,但仍然带有我们不想要的前导空格。

因此,变量和 = 之间不能有空格,= 和值之间不能有空格。此外,最好将整个变量字符串用双引号引起来,以确保值上没有尾随空格,因此最后,您需要执行以下操作:

 set "inputdate='2019-04-29'"

关于sql-server - 将变量从 'list' 传递到 .bat 文件中的 sqlcmd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56072033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com