Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 从T-SQL运行SSIS包_Tsql_Ssis - Fatal编程技术网

Tsql 从T-SQL运行SSIS包

Tsql 从T-SQL运行SSIS包,tsql,ssis,Tsql,Ssis,我注意到您可以使用以下存储过程(以便)计划SSIS包: msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]' msdb.dbo.sp_add_job ... msdb.dbo.sp_add_jobstep ... msdb.dbo.sp_update_job ... msdb.dbo.sp_add_jobschedule ... msdb.dbo.sp_add_jobser

我注意到您可以使用以下存储过程(以便)计划SSIS包:

msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
msdb.dbo.sp_add_job ...
msdb.dbo.sp_add_jobstep ...
msdb.dbo.sp_update_job ...
msdb.dbo.sp_add_jobschedule ...
msdb.dbo.sp_add_jobserver ...
(您可以通过右键单击计划作业并选择“将作业作为脚本->创建到”来查看示例。)

您可以使用sp_start_job立即执行作业,有效地按需运行SSIS包


问题:是否有人知道任何msdb.dbo。[…]存储过程允许您在不直接使用sp_cmdshell的情况下动态运行SSIS包,或者使用更简单的方法?不太可能。。。您可以尝试sp_OACreate,但它更复杂,可能无法实现


您需要从SQL运行它们吗?它们可以从命令行、.net应用程序等运行

实际上并不是。。。您可以尝试sp_OACreate,但它更复杂,可能无法实现


您需要从SQL运行它们吗?它们可以从命令行、.net应用程序等运行

嗯,您不需要严格地调用
sp\u add\u类别
sp\u update\u作业
sp\u add\u jobschedule
调用。我们使用SQL Agent在应用程序中按需执行包,调用顺序如下:

 - sp_add_job 
 - sp_add_jobstep
 - sp_add_jobserver 
 - sp_start_job
如果无法访问msdb..sysjobXXX表,那么获取作业状态有点棘手,但我们的作业启动和运行正常


编辑::除了xp\u cmdshell之外,我还不知道从withinSQL服务器启动SSIS处理程序的其他方法。在服务器上具有权限的任何人都可以启动dtexec或dtutil可执行文件;然后您可以使用批处理文件、作业调度程序等。

好吧,您不需要严格地调用
sp\u add\u category
sp\u update\u job
sp\u add\u jobschedule
调用。我们使用SQL Agent在应用程序中按需执行包,调用顺序如下:

 - sp_add_job 
 - sp_add_jobstep
 - sp_add_jobserver 
 - sp_start_job
如果无法访问msdb..sysjobXXX表,那么获取作业状态有点棘手,但我们的作业启动和运行正常


编辑::除了xp\u cmdshell之外,我还不知道从withinSQL服务器启动SSIS处理程序的其他方法。在服务器上具有权限的任何人都可以启动dtexec或dtutil可执行文件;然后,您可以使用批处理文件、作业计划程序等。在SQL Server 2012+中,可以使用以下功能(位于
SSIDB
数据库中,而不是
msdb
数据库中)创建SSIS执行作业、初始化其参数并开始执行:


在SQL Server 2012+中,可以使用以下功能(位于
SSIDB
数据库中,而不是
msdb
数据库中)创建SSIS执行作业、初始化其参数并开始执行:


我们宁愿从SQL执行,也不愿为我们的web服务器提供方法。我们的web服务器与SQL服务器不在同一个ms域中(甚至不在同一个网络上)。我们宁愿从SQL执行它,也不愿为我们的web服务器提供方法。我们的web服务器与SQL服务器不在同一ms域中(甚至不在同一网络上)。