使用对 SQL 服务器的外部引用执行包任务
Execute package task with external reference to SQL Server
** 编辑:使用 T-SQL 脚本执行包会导致身份验证问题:
“用户 'NT AUTHORITY\ANONYMOUS LOGON' 登录失败。” **
** 编辑 2:此错误是由 Windows 凭据执行双跃点引起的。 是这个问题的解决方案**
我正在尝试执行之前已部署到 SQL 服务器实例的 SSIS 包。此 SQL 服务器实例的版本为 14.0.3281(SQL Server 2017)。
我无法使用项目引用,因为我想要的包在另一个项目中,我不想将它上传到服务器的文件系统。
真的是版本问题吗?
如何从另一个项目执行已部署的包?
我知道我可以 运行 使用 T-SQL 处理这个包的作业,但我希望只有在这个包成功执行后任务才能继续。
这是我得到的错误:
The attempted operation is not supported with this database version.
------------------------------ ADDITIONAL INFORMATION:
The attempted operation is not supported with this database version.
有一种方法可以通过 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)
** 编辑:使用 T-SQL 脚本执行包会导致身份验证问题: “用户 'NT AUTHORITY\ANONYMOUS LOGON' 登录失败。” **
** 编辑 2:此错误是由 Windows 凭据执行双跃点引起的。
我正在尝试执行之前已部署到 SQL 服务器实例的 SSIS 包。此 SQL 服务器实例的版本为 14.0.3281(SQL Server 2017)。
我无法使用项目引用,因为我想要的包在另一个项目中,我不想将它上传到服务器的文件系统。
真的是版本问题吗? 如何从另一个项目执行已部署的包?
我知道我可以 运行 使用 T-SQL 处理这个包的作业,但我希望只有在这个包成功执行后任务才能继续。
这是我得到的错误:
The attempted operation is not supported with this database version.
------------------------------ ADDITIONAL INFORMATION:
The attempted operation is not supported with this database version.
有一种方法可以通过 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)