微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用对 SQL Server 的外部引用执行包任务

如何解决使用对 SQL Server 的外部引用执行包任务

我正在尝试执行之前已部署到 sql Server 实例的 SSIS 包。此 sql Server 实例的版本为 14.0.3281 (sql Server 2017)。

我不能使用项目引用,因为想要的包在另一个项目中,我不想将它上传到服务器的文件系统。

真的是版本问题吗? 如何从另一个项目执行已部署的包?

我知道我可以使用 T-sql 使用此包运行作业,但我希望任务仅在此包成功完成执行后才能继续。

这是我得到的错误

数据库版本不支持尝试的操作。

------------------------------ 附加信息:

数据库版本不支持尝试的操作。

Visual Studio Error

解决方法

有一种方法可以通过 T-SQL 运行包并使用内置过程等待它完成。

-- Create the execution object
DECLARE @execution_id BIGINT
EXEC [SSISDB].[catalog].[create_execution] 
    @package_name = @PackageName,@project_name = @ProjectName,@folder_name = @FolderName,@use32bitruntime = False,@reference_id = NULL,@execution_id = @execution_id OUTPUT

-- Configure execution
EXEC [SSISDB].[catalog].[set_execution_parameter_value] 
    @execution_id,@object_type = 50 -- System parameter,@parameter_name = N'SYNCHRONIZED',@parameter_value = 1 -- set this to 1 to wait for completion

-- Start the execution
EXEC [SSISDB].[catalog].[start_execution] @execution_id

您可以将其包装到一个像“startPackage”这样的存储过程中,并且还包括使用执行 ID 检查结果:

-- Check package status,and fail script if the package failed
IF 7 <> (SELECT [status] FROM [SSISDB].[catalog].[executions] WHERE execution_id = @execution_id) AND @Syncronized = 1
        RAISERROR('The package failed!',16,1)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。