小编SQL*_*oug的帖子

在 sysjobhistory 中将单次运行的作业步骤链接在一起

我们有几个运行 SQL 代理作业的 SQL Server,在它们自己的 sysjobhistory 表中记录历史记录。我正在尝试设置一个集中式服务器,其中包含一项作业,该作业从所有其他服务器收集历史记录,对其进行一些格式化,然后将其放入名为 AllJobHistory 的表中。作为此过程的一部分,我希望用一列来指示作业的多个步骤是同一作业运行的一部分。它们已通过 job_id 列标记为同一作业的一部分,但我想知道特定行来自作业的 3:00 运行与 4:00 运行。能够基于此列进行过滤将使我们的故障排除工作变得更加容易,但我没有在任何现有系统表或 DMV 中看到任何将这些步骤链接在一起的内容,是吗?

\n\n

我自己的第一次尝试是使用 run_date、run_time 和 run_duration 列。对于每个步骤,如果我从 run_time 中减去到目前为止的总 run_duration,它应该使我回到与该作业的所有其他运行相比唯一的时间。看起来它一直在工作,直到我发现它不是 \xe2\x80\x99t 的情况(可能是因为 SQL Server 以秒的精度舍入 run_time 和 run_duration )。这是我对查询的尝试(删除了额外的列)。

\n\n
WITH JobDetails AS \n(\n    SELECT \n        QUOTENAME(UPPER(\'ServerName\')) AS [Server],\n        j.job_id AS [JobID],\n        j.name AS [JobName],\n        s.step_id AS [Step],\n        msdb.dbo.agent_datetime(run_date, run_time) AS [RunDate],\n        (run_duration/10000*3600 + (run_duration/100)%100*60 + run_duration%100) AS [RunDurationSeconds]\n    FROM msdb.dbo.sysjobhistory h\n    INNER JOIN msdb.dbo.sysjobs j ON j.job_id = h.job_id\n    LEFT OUTER JOIN msdb.dbo.sysjobsteps …
Run Code Online (Sandbox Code Playgroud)

sql-server

4
推荐指数
1
解决办法
3037
查看次数

是否有 Azure SQL DB 的 Express 版本?

对于本地 SQL Server,有 Express、Web、Standard 和 Enterprise 等版本。Azure SQL DB 中是否存在这些版本(或类似版本),尤其是 Express?

我的 Google-Fu 在这里失败了,可能是因为它不存在。

sql-server express-edition azure-sql-database sql-server-express

3
推荐指数
1
解决办法
1862
查看次数