2012-02-02 84 views
1

我的應用程序實際上調用了一個存儲過程,它調用一個包並執行它。最初我們使用xp_cmdshell和dtexec來做,但客戶端不允許使用xm_cmdshell.Is有任何其他方法去做這個?從存儲過程調用ssis包,而不使用xp_cmdshell

請幫忙。

+0

SQL 2012提供了本地運行程序包的過程[catalog.create_execution](http://msdn.microsoft.com/zh-cn/library/ff878160(v = sql.110).aspx)和[catalog.start_execution] (http://msdn.microsoft.com/en-us/library/ff878160(v=sql.110).aspx) – billinkc 2012-02-02 15:49:12

+0

問題是應用程序和程序包重新在同一個服務器即應用程序服務器上。根據客戶端我們不允許在應用程序服務器上安裝集成服務。我們的數據庫服務器是不同的。我們的應用程序在按鈕單擊時執行包。 – Shipu 2012-02-03 05:10:06

回答

1

這種情況是SSIS文檔中的discussed。另一個選項是CLR程序,即runs the package,所以不是TSQL/xp_cmdshell,而是使用CLR/Dts對象模型。

1

你可以設置一臺運行的包,然後用sp_start_job來EXECUT工作

http://msdn.microsoft.com/en-us/library/ms403355.aspx

您可以使用這些命令來創建作業的作業編程

http://msdn.microsoft.com/en-us/library/ms181153.aspx

+0

,但它會在併發users.suppose用戶點擊一個按鈕,將調用此sp_startjob.But創建問題,但如果在同一時間其他用戶單擊此按鈕然後他/她將無法執行它,直到第一個完成它。 – Shipu 2012-02-02 14:01:55

+0

可能不是運行現有作業,而是運行創建作業的腳本,然後可以將該唯一GUID添加到作業並跟蹤其進度以及http://msdn.microsoft.com/zh-cn/library/ms191450的.aspx – msmucker0527 2012-02-02 14:21:21