问题标签 [sql-server-job]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1176 浏览

sql-server - SQL Server 作业依赖性

我在 SQL Server 2000 中有一个工作,它每晚运行并刷新数据,我有另一个工作在数据刷新并更新一些记录后运行。这两个工作没有相互关联。如果数据刷新作业失败,我需要知道如何停止或禁用更新作业。

0 投票
3 回答
64893 浏览

sql-server - 如何从存储过程启动 SQL Server 作业?

如何创建存储过程来启动 SQL Server 作业?

0 投票
1 回答
5229 浏览

sql-server - 从 sql server 作业写入 Windows 事件查看器

我正在使用 sql server 2012 并在其上设置了一些作业以在一天中的不同时间运行。如果工作失败,我想收到这样的提醒。

在服务器上,我有一些软件可以监控事件查看器。如果作业失败,我想设置我的作业以写入服务器事件查看器。我想用事件 id 999 和错误级别来写。

我该如何设置我的工作来做到这一点?

0 投票
3 回答
3345 浏览

sql - 获取在 UPDATE 触发器上运行 SQL 查询的作业

我正在尝试为在 Web 应用程序、SQL Server 代理作业和手动运行对数据库的查询中执行的操作创建审计跟踪。我正在尝试使用触发器来捕获某些表上的更新、插入和删除。

总的来说,这个过程是有效的。例如,用户在 Web 应用程序中执行更新,触发器将更新的数据写入我定义的审计跟踪表,包括执行操作的人的用户名。从 Web 应用程序或手动查询的角度来看,这工作得很好,但我们也有几十个 SQL Server 代理作业,我想捕获哪个运行了特定的查询。每个代理作业都使用相同的用户名运行。这也可以正常工作并将用户名正确输入到表中,但我找不到哪个作业调用此查询。

我当前的“解决方案”是找出触发时当前正在运行的作业,因为其中之一必须是正确的。使用:

我运行了一个特定的作业来测试它似乎可以工作,因为任何正在运行的 OTHER 作业都将列在 中@runningJobs,但它不会记录运行它的作业。我假设当触发器运行时,作业已经完成。

有没有办法我可以找出什么工作调用了触发触发器的查询?

编辑:我尝试更改SELECT上面的查询以获取在过去 2 分钟内运行或当前正在运行的任何作业。SQL 查询现在是:

当我运行作业时,然后在作业运行时运行上述查询,将返回正确的作业。但是,当 SSIS 包运行时,无论是通过 SQL Server 代理作业还是在 SSIS 中手动运行,@runningJobs都不会填充并仅返回NULL.

所以我现在认为这是 SSIS 和master.dbo.xp_sqlagent_enum_jobs. 还有其他想法吗?

编辑#2:实际上不要认为这是权限错误。此代码下方有一条INSERT语句,如果它是权限错误,则该INSERT语句不会运行,因此审核行不会添加到数据库中。因此,由于数据库中添加了一行,只是没有runningJobs填充该字段。奇怪的时代。

编辑#3:我只是想澄清一下,我正在寻找一个不需要我进入每项工作并改变任何东西的解决方案。有太多的工作使这成为一个可行的解决方案。

0 投票
1 回答
41 浏览

sql-server-2008-r2 - 来自 SQL Server 作业的电子邮件通知

我们希望在 SQL Server 2008 R2 上的数据库邮件中为我们团队中的所有开发人员设置一个配置文件,以便在通宵工作完成后接收通知。

不幸的是,在作业的通知属性中,它只允许我们选择一个运算符(数据管理开发人员),使用运算符的问题是有多少个字符(因此有多少个电子邮件地址)有 100 个 nvarchar 限制) 可以添加。

我们如何为通知选择新的配置文件?我们必须删除操作员吗?

0 投票
1 回答
413 浏览

sql-server-2008-r2 - SQL Server - 在作业失败时发送电子邮件任务

我们有一项每天运行数次的工作进行增量备份。

我们添加了一个步骤“在作业失败时发送电子邮件”,如果第一步(增量备份)失败,它会使用 T-SQL 向管理员团队发送电子邮件。

不幸的是,我们必须在第二步中错误地配置了高级选项,因为即使第一步成功,我们也会收到一封电子邮件。

第二步,邮件发送成功。

我们为第一步配置了如下选项:

  • 成功退出报告成功
  • 失败时转到第 2 步 - 发送电子邮件

我们为第二步配置了如下选项:

  • 成功退出报告成功
  • 失败时转到第 2 步 - 发送电子邮件

现在,当第 1 步的任务成功时,我们不希望收到电子邮件。当第 1 步失败时,我们会收到一封电子邮件。

那么我们做错了什么?

0 投票
1 回答
262 浏览

php - Linux 服务器:向我的用户发送邮件

我对创建服务器每天运行的服务器脚本和作业相当陌生。

我的问题如下:

我想向我的用户发送一封电子邮件,提醒他们必须完成的特定工作。

我的想法:

数据库 -> 收集所有需要通知的用户并将他们插入到表中notify_user

脚本 -> 查找所有用户并向他们发送邮件

脚本 -> 从表中删除所有

然后,此脚本将在每天的特定时间运行,例如每 24 小时运行一次。

正如我之前所说,我并不热衷于如何设置这样的脚本。

我的服务器是 Ubuntu 服务器,我的应用程序是 PHP 程序。

有谁知道我如何实现这一点,或者知道我在哪里可以找到关于这个主题的一些文档,因为我找不到任何可以解决这个问题的东西。

0 投票
1 回答
618 浏览

sql-server-2012 - sp_send_dbmail 在 SQL Server 代理作业中失败

有人可以解释并解决以下问题。谢谢。

我在 Windows Server 2012 上的 SQL Server 2012 中运行它时遇到了这个查询问题。
查询 (@query) 在单独运行时运行得很好,但在放入 SQL Server 代理作业时没有显示任何结果(见下文)。

有趣的是,当我在 Windows Server 2008 上运行的 Sql Server 2012 中对其进行测试时,它无论是独立运行还是在 SQL Server 代理作业中都完美运行!!?

0 投票
0 回答
939 浏览

sql-server - 数据库备份失败 SQL Server 2012 Enterprise

我正在运行拆分磁盘备份,例如:

它失败并出现以下错误:

以用户身份执行:DOMAIN\sqlserviceaccount。为数据库“At”、文件 1 上的文件“At”处理了 257856 页。[SQLSTATE 01000](消息 4035)已处理 10%。[SQLSTATE 01000](消息 3211)已处理 20%。[SQLSTATE 01000](消息 3211)已处理 30%。[SQLSTATE 01000](消息 3211)40% 已处理。[SQLSTATE 01000](消息 3211)已处理 50%。[SQLSTATE 01000](消息 3211)已处理 60%。[SQLSTATE 01000](消息 3211)已处理 70%。[SQLSTATE 01000](消息 3211)80% 已处理。[SQLSTATE 01000](消息 3211)写入“O:\sql_bak\At_full1.bak”失败:112(磁盘上没有足够的空间。)[SQLSTATE 42000](错误 3202)备份数据库异常终止。[SQLSTATE 42000](错误 3013)。步骤失败。

数据库 At 的大小为 4TB,驱动器 L、M 和 O 的大小分别为 2TB。这些驱动器是完全免费的。它成功运行了一次,从那以后一直失败。请建议。

0 投票
0 回答
1851 浏览

sql-server - 无法从 SQL Server 代理运行批处理文件(拒绝访问)

我正在尝试从 SQL Server 代理执行批处理文件(因为它需要在运行某些 SSIS 包之前完成)。当我执行作业时,它会在几秒钟内失败,说“访问被拒绝”。

运行 SQL Server 代理的帐户对包含批处理文件的文件夹具有完全控制权。批处理的结果将是删除文件夹中的一些文件,调用 web 服务并从 web 服务中取回这些相同的文件。当我使用自己的(管理员)帐户启动批处理文件时,我可以运行它。

我用谷歌搜索并找到了其他几个问题和答案,但没有一个涵盖我的问题。我希望你能指出其他选择。

谢谢你的帮助。

约翰

批处理文件内容:

来自 SQL Server 代理作业的批处理文件执行语句(类型为操作系统 (CmdExec)):