我正在尝试使用T-SQL将SSIS项目部署到SSISDB中。假设在部署时出现任何错误,错误消息已登录到catalog.operation_messages视图。
现在,如果我在显式SQL事务中执行相同的部署语句,并且在部署时发生任何错误,我将无法找到记录到catalog.operation_message中的错误。
实施例
BEGIN
BEGIN TRY
BEGIN TRAN TRAN1
Declare @folder_id bigint
EXEC SSISDB.catalog.create_folder @folder_name='test1', @folder_id=@folder_id OUTPUT
Select @folder_id
EXEC SSISDB.catalog.set_folder_description @folder_name='test1', @folder_description='test1'
--Deploy
DECLARE @ProjectBinary as varbinary(max)
DECLARE @operation_id as bigint
Set @ProjectBinary = (SELECT * FROM OPENROWSET(BULK 'C:\Test\MyProject.ispac', SINGLE_BLOB) as BinaryData)
Exec SSISDB.catalog.deploy_project @folder_name = 'test1', @project_name = 'ABC', @Project_Stream = @ProjectBinary, @operation_id = @operation_id out
COMMIT TRAN TRAN1
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE()
COMMIT TRAN TRAN1
END CATCH
END
这回复我的错误信息 无法部署项目。有关更多信息,请在operation_messages视图中查询操作标识符' 34704'。
但是当我查询视图并尝试查找相同内容时,我无法找到此operation_Id记录的任何消息,是否会回滚?如果是的是哪个过程?我怎么能保留它?
帮助我理解它。