使用Windows任务计划程序执行存储过程

ric*_*ris 12 sql-server stored-procedures scheduled-tasks

我一直在尝试设置一个计划,以便在Windows任务计划程序中每小时运行一次存储过程(因为我使用的是SQL Express并且无法安装第三方工具)但是在尝试各种方法(例如运行.bat文件)之后从任务调度程序,从任务调度程序打开SqlCmd实用程序并传递命令行语法或.sql脚本文件我没有运气.

我知道这可以做到,因此我确信这是我错过的东西,但如果有人可以分享他们的经验,我会非常感激.

非常感谢

e-m*_*mre 13

如果您是sql实例的管理员(因为您使用的是SQLExpress,我打赌您尝试在自己的计算机上执行此操作,因此您的用户很可能是sql实例的管理员)您不应该使用-E at所有,只是忽略它.

其次,即使您在本地工作,也要指定服务器.

从一个简单的sql命令开始,如下所示:

sqlcmd.exe -S"." -d MY_DATABASE -Q"SELECT*FROM MY_TABLE"

用您的dbname和表名替换MY_DATABASE和MY_TABLE.确保您可以从命令行运行它.它应该返回表中的数据.(注意命令行选项区分大小写,因此-s与-S不同)

最后,不要尝试通过任务计划程序提供参数.将包含所有参数的命令放在.bat文件中,然后从任务计划程序运行批处理.

  • 所以我仍然建议忽略-E参数并指定带-S的服务器,分别用-U和-P指定用户名和密码.首先忘记调度并确保可以从命令行运行命令. (2认同)