在 SSMS 中执行 SSIS

Execute SSIS in SSMS

我有一个 SSIS 包,可以将文件上传到 tables。我想在文件上传并保存到 table 后立即执行它。 link 展示了如何使用存储过程执行它。我所做的是使用以下代码创建了一个触发器:

ALTER TRIGGER [dbo].[tr_ImportFile] 
ON  [dbo].[ReconMedicalAidFile] 
AFTER INSERT
AS 
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for trigger here
    DECLARE @params VARCHAR(MAX),
            @ssisStr VARCHAR(MAX),
            @packageName VARCHAR(MAX),
            @serverName VARCHAR(MAX)

    SET @serverName = 'ServerName'
    SET @packageName = 'MyIntegration'

    SET @ssisStr = 'dtexec /sq ' + @packageName + ' /ser ' + @serverName

    DECLARE @returnCode int
    EXEC @returnCode = xp_cmdshell @ssisStr

END

我收到以下错误 过程需要类型为 'varchar' 的参数 'command_string'。

如有任何帮助,我们将不胜感激。

谢谢

我认为将 VARCHAR(MAX) 替换为 VARCHAR(8000) 数据类型

会起作用

我走了另一条路。仍然有触发器,但它将执行包含 SSIS 包的 SQL 作业。

EXEC msdb.dbo.sp_start_job N'JobName' ;