Tsql 从T-SQL运行SSIS包
我注意到您可以使用以下存储过程(以便)计划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
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域中(甚至不在同一网络上)。