Sql 获取特定日期所有失败SSIS包的列表
大家好,我们有没有办法在任何特定日期获取所有失败软件包的列表,我们可以用SQL查询吗?Sql 获取特定日期所有失败SSIS包的列表,sql,sql-server,ssis,ssis-2017,Sql,Sql Server,Ssis,Ssis 2017,大家好,我们有没有办法在任何特定日期获取所有失败软件包的列表,我们可以用SQL查询吗? 我们正在使用SSIS 2017。您好,请尝试此sql查询以查询sql代理作业: 假设包已部署到SSIDB并从目录运行,则查询SSIDB.catalog.EXECUTIONSDMV以获取状态为4的执行。如中所述,状态为4的包导致失败。由于start\u time列属于datetimeoffsetdate类型,并且我假设您只想按日期而不是时间查询包失败,因此此列被强制转换为下面的日期,以便默认为午夜 SELECT
我们正在使用SSIS 2017。您好,请尝试此sql查询以查询sql代理作业:
假设包已部署到SSIDB并从目录运行,则查询
SSIDB.catalog.EXECUTIONS
DMV以获取状态为4的执行。如中所述,状态为4的包导致失败。由于start\u time
列属于datetimeoffset
date类型,并且我假设您只想按日期而不是时间查询包失败,因此此列被强制转换为下面的日期,以便默认为午夜
SELECT EXECUTION_ID
,FOLDER_NAME
,PROJECT_NAME
,PACKAGE_NAME
,REFERENCE_ID
,REFERENCE_TYPE
,ENVIRONMENT_FOLDER_NAME
,ENVIRONMENT_NAME
,[OBJECT_ID]
,[STATUS]
,START_TIME
,END_TIME
,CALLER_SID
,CALLER_NAME
,SERVER_NAME
,MACHINE_NAME
FROM SSISDB.CATALOG.EXECUTIONS
--4 for failed packages
WHERE [STATUS] = 4 AND CAST(START_TIME AS DATE) = '2019-01-01'
请仔细看看,失败的不是SSIS包,而是SQL代理作业。SSI和SQL代理是两种截然不同的东西。如果包也是通过T-SQL调用的(这在SQL Server 201+和SSIDB中非常容易实现),则此脚本不会提供有关这些故障的信息。
SELECT EXECUTION_ID
,FOLDER_NAME
,PROJECT_NAME
,PACKAGE_NAME
,REFERENCE_ID
,REFERENCE_TYPE
,ENVIRONMENT_FOLDER_NAME
,ENVIRONMENT_NAME
,[OBJECT_ID]
,[STATUS]
,START_TIME
,END_TIME
,CALLER_SID
,CALLER_NAME
,SERVER_NAME
,MACHINE_NAME
FROM SSISDB.CATALOG.EXECUTIONS
--4 for failed packages
WHERE [STATUS] = 4 AND CAST(START_TIME AS DATE) = '2019-01-01'