使用bat文件调用sql脚本

Posted

技术标签:

【中文标题】使用bat文件调用sql脚本【英文标题】:Call sql script using bat file 【发布时间】: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 /? 并学习正确的语法... 【参考方案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>

【讨论】:

以上是关于使用bat文件调用sql脚本的主要内容,如果未能解决你的问题,请参考以下文章

怎么用批处理*.bat 执行文件目录下面的SQL语句脚本(批量的)

bat脚本如何调用JAVA程序

使用bat脚本调用py文件直接获取应用的包名和targetversion

.bat 文件调用python脚本

从 bat 文件(oracle、批处理)运行 sql 脚本

bat文件调用Uipath流程