在 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' ;
我有一个 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' ;