每小时在 MS SQL Studio 中自动执行查询

Iva*_*lev 13 sql-server scheduled-tasks

我在一家大企业中支持一个应用程序,我的职责之一是清理数据。我需要每小时执行一个查询,我想自动化它。由于组织政策,我无法创建 SQL Server 代理作业或修改架构,我只能操作数据。

无尽的

WHILE(1=1)
BEGIN 
WAITFOR DELAY '01:00';
--do work
END
Run Code Online (Sandbox Code Playgroud)

为我完成这项工作,但我对永久开放连接的想法不屑一顾。

理想情况下,我会编写 MS SS 本身的脚本以每小时执行一段给定的代码,但我不确定这是否可行。

这个问题有什么解决办法吗?

Joh*_* N. 23

你的朋友是sqlcmd (Microsoft Technet)

  1. 使用运行清理作业所需的脚本创建 SQL 文件
  2. 使用 sqlcmd.exe 和任何必需的参数运行脚本
  3. 创建 Windows 计划任务并添加具有所有必需参数的命令

例如

sqlcmd -d YOUR_DB -E -i YOUR_SCRIPT.SQL -o OUTPUTFILE.TXT 
Run Code Online (Sandbox Code Playgroud)

祝你好运。

  • 确保这些脚本与计划任务一起放在适当的应用程序/工具服务器上,而不是开发计算机上。 (4认同)

Tom*_*m V 7

您不需要 Management Studio 来执行查询。

如果您真的没有选择让某人为您安排工作,您应该查看 sqlcmd,如 hot2use 的回答中所述

如果您使用的版本不受支持(因为您没有指定版本),那么还有osql,它是一个命令行客户端,但该工具已被弃用。

然后,您可以使用您想要的任何调度程序(例如 Windows 任务调度程序)调度命令并运行如下所示:

OSQL -E -i c:\temp\dowork.sql
Run Code Online (Sandbox Code Playgroud)

查看文档以了解您有哪些用于服务器选择和身份验证的选项。