2015-07-22 77 views
0

我有一個SSIS包將文件上傳到表中。我想在文件上傳並保存到表格後立即執行它。這link顯示瞭如何使用存儲過程執行它。我所做的是我創建了下面的代碼觸發:在SSMS中執行SSIS

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」。

任何幫助,將不勝感激。

感謝

回答

0

我走了不同的路線,它的工作原理。仍然有觸發器,但它會執行包含SSIS包的SQL作業。

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

我認爲當你更換VARCHAR(MAX)VARCHAR(8000)數據類型