Java 未从触发器执行SSIS包
我有一个before insert触发器,它执行SSIS包来执行一些工作 当从SQLServer查询窗口执行时(通过在表中插入一行),它可以完美地工作 但是当从java代码插入时,SSIS包不会被执行。 我真的很困惑为什么会发生这种奇怪的行为。感谢您的帮助 触发代码:Java 未从触发器执行SSIS包,java,sql,sql-server-2008,ssis,Java,Sql,Sql Server 2008,Ssis,我有一个before insert触发器,它执行SSIS包来执行一些工作 当从SQLServer查询窗口执行时(通过在表中插入一行),它可以完美地工作 但是当从java代码插入时,SSIS包不会被执行。 我真的很困惑为什么会发生这种奇怪的行为。感谢您的帮助 触发代码: USE [GreeF] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER trigger [dbo].[INS_TRG] on [dbo].[MyTrigger]
USE [GreeF]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[INS_TRG] on [dbo].[MyTrigger] for insert
as
begin try
Declare @cmd varchar(1000)
declare @FName varchar(100)
select @FName = [FileName] from inserted
select @cmd = 'dtexec /f "\\SOME_IP\packageName.dtsx" /Set "\Package.Variables[User::FileName].Properties[Value]";"'+@FName+'"'
exec master..xp_cmdshell @cmd
print @cmd
end try
begin catch
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState)
end catch
“插入执行SSIS包的触发器之前”-eeeekkkkk!我能想到的只有几个更糟糕的想法……java代码作为一个具有足够权限的身份运行吗?@MitchWheat我同意这是个糟糕的想法。但是条件迫使我。java代码有足够的权限在表和数据库上执行insert更新。没有SSIS包代码的正常insert语句工作正常。1。打开包中的日志记录。我将有兴趣了解软件包是否没有启动或是否失败。2.当您声明从SSMS(而不是Java应用程序)插入时,它工作正常-您是否在两个测试中使用相同的用户帐户(我猜是否)