2013-01-14 188 views
7

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

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

非常感谢

+1

使用sqlcmd看起来很合理。你为什么失败了? –

+0

看起来很有用:http://stackoverflow.com/questions/3794897/need-help-to-write-bat-file-that-execute-sql-scripts-in-sql-server-2008-and-ano – sgeddes

+0

运行SQLCMD的.bat文件不起作用?给我们详细信息。 – Mark

回答

9

如果您对SQL实例管理员(由于您使用的SQLExpress我敢打赌,你正在试图做到这一点你自己的电脑上,以便有一个高的机会你的用户是管理员sql实例),你不应该使用-E,只是忽略它。

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

开始用一个简单的SQL命令象下面这样:

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

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

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

+0

不,我已经远程连接到SQL服务器所在的机器,而不是尝试在本地执行此操作。 我会试一试,但关于批处理文件 - 该文件将如何查看? – richardterris

+1

默认情况下,SQLExpress被配置为拒绝远程连接。你确定你可以连接到你的机器上的远程SQLExpress吗?可以使用Management Studio进行尝试,例如 –

+0

是的,我可以从我自己的机器上的管理工作室连接到它 – richardterris

-1

我最近有类似的问题,我的经验可能会帮助你。我从一个批处理文件调用一个小应用程序,即EXE。我正在安排批处理文件从Windows任务计划程序运行。该应用程序正在使用Windows身份验证访问SQL数据。 我可以直接运行应用程序,即点击EXE运行它。 我可以从批处理文件运行应用程序。 但是,如果我试图运行计划任务似乎开始,但什么也没做,并没有发布我能找到的错误。 我发现如果我将应用程序更改为使用SQL身份验证运行,它可以从任务计划程序运行。

我怀疑当从Windows无法识别的任务计划程序运行Windows身份验证时,会出现一些有关Windows身份验证的上下文。

相关问题