--modo 32bits
exec master.dbo.xp_cmdshell '""C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /F "C:\pacote\teste.dtsx"'
--modo 64bits
exec master.dbo.xp_cmdshell '""C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /F "C:\pacote\teste.dtsx"'
Abs e até a próxima!!
Leia o meu livro sobre ETL com SSIS 2012 http://www.erica.com.br/detalhes.asp?cod=4094
Aqui na empresa, em diversos momentos Procedures executam Jobs que executam SSIS.
ResponderExcluirTem como executar pacotes que estão armazenados no msdb, e passar parametros para o pacote?
Com essa execução de DTSX via T-SQL é possível armazenar o resultado do pacote? Algo como View History de Job...
Calebe, para visualizar o job histoty, é uma query simples:
ResponderExcluirselect job_name, run_datetime, run_duration
from
(
select job_name, run_datetime,
SUBSTRING(run_duration, 1, 2) + ':' + SUBSTRING(run_duration, 3, 2) + ':' +
SUBSTRING(run_duration, 5, 2) AS run_duration
from
(
select DISTINCT
j.name as job_name,
run_datetime = CONVERT(DATETIME, RTRIM(run_date)) +
(run_time * 9 + run_time % 10000 * 6 + run_time % 100 * 10) / 216e4,
run_duration = RIGHT('000000' + CONVERT(varchar(6), run_duration), 6)
from msdb..sysjobhistory h
inner join msdb..sysjobs j
on h.job_id = j.job_id
) t
) t
order by job_name, run_datetime
Para executar o pacote no msdb via t-sql, tenho que pesquisar por aqui...quem sabe em outro post
abs
Calebe, se o pacote que está no MSDB estiver vinculado a um job, você pode executar o JOB via T-SQL:
ResponderExcluirEXEC MSDB..SP_Start_Job @Job_Name = 'Nome do seu JOB'