我支持大型企业中的应用程序,我的角色之一是清理数据。我需要每小时执行一个查询,我想自动化它。由于组织政策,我无法创建 SQL Server 代理作业或修改架构,我只能操作数据。
无尽的
WHILE(1=1)
BEGIN
WAITFOR DELAY '01:00';
--do work
END
为我完成了这项工作,但我对永久开放连接的想法耸了耸肩。
理想情况下,我会编写 MS SS 本身的脚本,使其每小时执行一段给定的代码,但我不确定这是否可能。
这个问题有什么解决办法吗?
我支持大型企业中的应用程序,我的角色之一是清理数据。我需要每小时执行一个查询,我想自动化它。由于组织政策,我无法创建 SQL Server 代理作业或修改架构,我只能操作数据。
无尽的
WHILE(1=1)
BEGIN
WAITFOR DELAY '01:00';
--do work
END
为我完成了这项工作,但我对永久开放连接的想法耸了耸肩。
理想情况下,我会编写 MS SS 本身的脚本,使其每小时执行一段给定的代码,但我不确定这是否可能。
这个问题有什么解决办法吗?
你的朋友是sqlcmd (Microsoft Technet)
例如
祝你好运。
您不需要 Management Studio 来执行查询。
如果您真的没有选择让某人为您安排工作,您应该查看 sqlcmd ,如 hot2use 的回答中所述
如果您使用的版本不受支持(因为您没有指定版本),那么还有osql它是一个命令行客户端,但该工具已被弃用。
然后,您可以使用您想要的任何调度程序(例如 Windows 任务调度程序)调度命令并运行如下内容:
查看文档以了解您有哪些用于服务器选择和身份验证的选项。
使用 MS SQL Studio 中的“SQL Server Agent”(在对象资源管理器中,展开您的服务器,它通常应该位于列表的底部)可能是您最好的选择。
这将创建一个可以设置为以定义的时间间隔执行的作业。这些作业将作为服务在服务器而不是客户端上运行。这意味着如果您的客户端断开连接,它仍然会运行,并且如果服务器重新启动(由于未知原因),该作业将继续运行,而无需您再次初始化它。
缺点是您可能需要提升访问权限才能执行此操作。