2015-07-22 2 views
0

У меня есть пакет SSIS, который будет загружать файлы в таблицы. Я хочу выполнить его, как только файл будет загружен и сохранен в таблице. В этом link показано, как выполнить его, используя хранимую процедуру. То, что я сделал, я создал триггер со следующим кодом:Выполнение SSIS в SSMS

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 

я получаю следующее сообщение об ошибке Процедура ожидает параметр «command_string» типа 'VARCHAR.

Любая помощь будет оценена по достоинству.

Благодаря

ответ

0

я пошел по другому пути. Еще есть триггер, но он выполнит SQL-задание, которое содержит пакет SSIS.

EXEC msdb.dbo.sp_start_job N'JobName' ; 
1

Я думаю, что это работает, когда вы замените VARCHAR (MAX) с VARCHAR (8000) типов данных

Смежные вопросы