如何计划在SQL Server上运行SQL脚本?

时间:2019-02-20 08:07:06

标签: sql-server scheduled-tasks

我想使用MS SQL Transact-SQL安排在每天的下午6点(周六和周日除外)运行脚本C:\script\my_script.sql

然后,将结果保存在文件夹C:\data\xxx.csv中,其中xxx是运行脚本的日期,例如2019-2-18

此外,如何删除计划任务?

我使用服务器代理,但无法查看文本。

enter image description here

非常感谢您。

1 个答案:

答案 0 :(得分:1)

如果您不想更改现有设置,请使用带有SQLCMD的Windows Task Scheduler。

在这里https://docs.microsoft.com/en-us/sql/ssms/scripting/sqlcmd-run-transact-sql-script-files?view=sql-server-2017

  
      
  1. 打开命令提示符窗口。

  2.   
  3. 在“命令提示符”窗口中,键入:sqlcmd -S myServer\instanceName -i C:\myScript.sql -o C:\EmpAdds.txt

  4.   
  5. 按Enter。

  6.   

您可以使用与此处相同的解决方案:create Scheduler task to invoke SQLCMD

  

您最好的选择是创建一个执行以下命令的控制台应用程序   SQL命令并执行电子邮件。

     

然后可以使用“任务计划程序”下的“设置任务”来使用“启动”   程序选项并按您希望的时间表运行

编辑: 要摆脱点缀线,请看这里:
Sqlcmd to generate file without dashed line under header, without row count

  

要删除列标题,应使用-h参数,其值为-1。   请参阅ref(“格式化选项”一节)。

或来自此帖子:
How to export data as CSV format from SQL Server using sqlcmd?

  

sqlcmd -S MyServer -d myDB -E -Q "select col1, col2, col3 from SomeTable" -o "MyData.csv" -h-1 -s"," -w 700
  -h-1从结果中删除列名称标头
  -s“,”将列分隔符设置为,
  -w 700将行宽度设置为700个字符(此长度必须与最长的行一样宽,否则将换行到下一行)