【问题标题】:Call sql script using bat file使用bat文件调用sql脚本
【发布时间】:2020-09-16 23:18:00
【问题描述】:

需要用bat文件调用sql脚本,传入两个变量,但是sql报错。要求声明标量。

这是 bat 文件本身。

@ECHO OFF
echo SET @arg1 := %2, @arg2 := %3; > commands
copy /b commands + %1 + %2 > nul
"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\sqlcmd.exe" -S DESKTOP-OQ8JGR5 -U SA -P 123 -i %1

还有sql脚本。

USE MVA
SELECT sum(number*price2 - number*price1) AS pribil FROM sale,goods
WHERE id=goods AND datepart(month, date)=@arg1 AND shop=@ar2

【问题讨论】:

  • 今日提示:始终使用现代、明确的JOIN 语法。更容易编写(没有错误),更容易阅读和维护,如果需要更容易转换为外连接!
  • 我们的作业是这样的:(
  • 2020年……我震惊了……
  • 这是一所俄罗斯大学。残酷无情。
  • 在命令提示符窗口中输入 set /?copy /? 并学习正确的语法...

标签: sql sql-server batch-file cmd scripting


【解决方案1】:

您可以创建一个存储过程并通过 bat 文件中的 sqlcmd 调用它。例如:

create procedure [SP_count_up]
(
@input int
)
as
begin
    select @input + 1
end
go

并通过在你的 bat 文件中调用它

sqlcmd -Q "exec dbo.SP_count_up @input=3" -S <server> -d <database>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    相关资源
    最近更新 更多