问题标签 [sql-agent-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.
sql-server - 检查数据库服务器文件系统上是否存在文件的选项
我正在维护一个访问单独服务器上的数据库(SQL Server 2012)的经典 ASP Web 应用程序。
这个遗留应用程序有很多集成工作。其中很多涉及在数据库服务器上托管的导入文件。这些由 SQL Server 代理作业运行并由 ASP COM+ 对象启动的 SSIS 包处理
我希望能够在运行导入包之前检查数据库服务器(与 Web 服务器分开)上是否存在导入文件。所以它应该能够失败并返回一个错误,表明一个文件没有找到。
我们的数据库和网络服务器曾经在同一台机器上。现在他们已经分开了。
此功能应该是通用的,以便我可以将其应用于所有导入,理想情况下,将文件路径作为参数传递。
在该环境和经典 ASP 限制下,这些是我考虑过的选项:
a)向运行 TSQL 的 SQL Server 代理作业添加一个步骤如下:
- 步骤发生在调用 SSIS 导入包/或作为单独作业运行的步骤之前。
- 它依赖于 SQL Server 代理作业“成功”或“失败”返回分别指示文件找到或未找到
问题:据我所知,它不是通用的。这意味着每种导入类型都有一个作业,因为一次只能处理一个作业,并且作业不支持参数(is)。
b)使用未记录的xp_fileexist
存储过程如下
问题:我已经测试过这种方法,它访问的是 WEBSERVER 的文件系统,而不是 DATABASE 服务器的预期文件系统。如果我使用预期的路径将文件放在 Web 服务器中,它会返回 1 表示它在那里。如果我删除它并放在数据库服务器中,从 Web 服务器中删除,它返回 0。
为什么要检查 Web 服务器文件系统?
c)以 .NET 语言创建 SQL Server CLR 程序集并尝试使用 .NET 文件系统操作来访问数据库文件系统。还没试过
d)使用 sqlcmd 还没试过
任何最佳实践或经验都会很有帮助。
sql-server - 在实例之间偏移 SQL Server 代理作业计划的开始时间
我有一个代理作业设置为从凌晨 2:00 到晚上 11:59 每两小时运行一次日志备份(留下一个运行完整或差异备份的窗口)。在我的大约 50 个实例中,每一个都设置了类似的工作。随着时间的推移,我可能会添加数百个实例(我们为一些客户托管 SQL Server)。它们都备份到同一个 SAN 磁盘卷。这会导致延迟问题并以其他方式影响性能。
我想将每个实例的作业运行时间偏移 5 分钟,以便实例 1 将在 2:00、4:00 等运行作业,实例 2 将在 2:05、4:05 运行它等,实例 3 将在 2:10、4:10 等运行它,依此类推。如果我在每个实例上偏移作业的开始时间(例如 2:00,例如 2:05,例如 2:10,等等),我可以合理地期望我会得到我想要的结果没有让所有实例同时运行作业?
sql-server - SQL Server 代理作业步骤 - 更改“运行方式”帐户的名称
如果我更改了为 SQL Server 代理作业的步骤设置为“运行方式”帐户的 AD 用户帐户的名称,是否需要更新该步骤的“运行方式”属性?或者它仍然可以使用帐户的 SID 工作吗?
sql-server - 为并发数据库运行 SQL 代理作业
我有一个工作将为 SQL 实例中的所有数据库创建一个工作。我不希望作业按顺序运行。我需要同时运行多个数据库,但我还想确保我没有同时运行太多可能会影响服务器性能的数据库。
有没有办法指定可以同时运行的并发作业的数量,或者以在活动作业的数量少于我指定的数量之前不会启动新作业的方式管理这些作业?
sql - 使用 MSSQL 代理创建计划作业
这是我第一次使用 SQL 代理,我没有太多经验!
我需要创建一个计划的作业,每天检查表格的几列,并根据今天的日期更新其中的一个!
项目表的列:
我需要status
根据项目现在使用startDate
列和today's date
. 基本上是这样的:
ExpectedProgress =(todayDate-startDate)*(100/(dueDate-StartDate))
现在通过比较progress
列和ExpectedProgress
i 可以设置status
列的值 true(准时)或 false(迟到)
提前致谢!
sql - 使用 SQL 代理作业调度向满足条件的用户列表发送电子邮件
如何每天使用 SQL 代理作业计划向状态列中具有 False 值的所有用户发送电子邮件!
这是我的桌子:
sql-server-2008 - SQL Server 2008 从 bat 文件触发 Sql 作业
如何从 bat 文件触发 SQL 作业?
我需要输入我的凭据:用户名和密码,bat 文件将位于服务器上,我希望人们通过双击 Windows 资源管理器来执行 bat。
sql - 如何使用 SQL 作业将数据导出到 SQL Server 中的 Excel
我需要将数据库中特定表中的数据导出到 Excel 文件 (.xls/.xlsx),这些文件将位于我网络中的共享文件夹中。现在情况是这样的——
我需要使用 SQL SERVER 代理作业。2.我需要每2分钟生成一个包含刷新数据的新excel文件。
我正在使用不包括 BI 开发工作室的 sql server 2008。我不知道如何解决这种情况。首先,我不确定如何使用作业导出数据,因为我尝试的每一种可能的方法都存在与 OLEDB 连接有关的问题。'sp_makewebtask' 在 SQL 2008 中也不可用。而且我也很困惑如何动态生成文件的名称。
任何参考或解决方案都会有所帮助。
sql-server - 以编程方式更改 SQL 代理作业计划时间不起作用
我有一个 SQL 代理作业,应该每天在规定的时间被解雇。如果我从 Management Studio 手动更改计划时间,它可以正常工作,但我需要使用存储过程更改时间,如下所示:
你猜怎么着?运行此类程序后,当我在 Management Studio 中检查预定时间时,它已正确更新,但显然 Job 忽略了这一点。
我什至发现,该作业保留了手动设置的旧计划时间,并使用该时间运行 - 例如,如果我手动将时间设置为上午 10:45,然后使用程序快速将时间更改为上午 10:55 ,即使 Management Studio 中的计划时间看起来已更新,作业仍将在 10:45 运行...
有什么想法可能是错的吗?
sql-server-2012 - 尝试从存储过程运行 SQL 代理作业
我有一个存储过程,它有一个服务帐户的“执行方式”,该服务帐户存储过程调用 sp_start_job 并使用代理作业的名称来启动。
我已将服务帐户成员资格授予 SQLAgentOperatorRole、SQLAgentReaderRole、SQLAgentUserRole、TargetServerRole 和 db_sisoperator。我授予 TargetServerRole 执行 sp_start_job 和 sp_stop_job 的权限
但仍然得到“对象'sp_start_job'的权限被拒绝。如果我更改客户端数据库上的数据库chaning,错误将更改为“权限被拒绝”xp_sqlagent_is_starting。我认为这不是正确的方向,我想知道我是否可以做任何其他事情来追踪这个问题。