2015-07-03 58 views
1

我們如何從存儲過程調用SSIS包並將其傳遞給參數?從存儲過程調用SSIS包

+1

的SQL Server版本? – StackTrace

+0

teradata與這裏相關嗎? – ughai

+0

如果您使用的是sql server 2012並定義了[ssis catalog](https://msdn.microsoft.com/zh-CN/library/hh479588.aspx),則可以[從存儲在目錄中的包中調用該包SQL過程](https://msdn.microsoft.com/en-us/library/jj820152.aspx)。 – ughai

回答

1

您可以啓用xp_cmdshell擴展存儲過程,並使用它可以執行DTEXEC實用程序來執行您的SSIS包。使用這種方法的缺點是xp_cmdshell的啓用會帶來安全威脅(操作系統級訪問),因此默認情況下它是禁用的。但是,使用此方法可以更輕鬆地在運行時值上提供更精細的SSIS包變量傳遞控制。

查看以下文章的詳細信息。 http://www.databasejournal.com/features/mssql/executing-a-ssis-package-from-stored-procedure-in-sql-server.html

或本http://www.codeproject.com/Articles/27156/How-to-Call-SSIS-Package-from-the-Stored-Procedure

+0

我沒有訪問xp_cmdshell.Any我可以調用其他方法,我也想傳遞存儲過程中的參數,以便在ssis包中它根據需要更改變量。 –

+0

是否意味着您無權啓用xp_cmdshell? – StackTrace

+0

是的,我沒有。但我的問題是,我參數化了where子句中的「id」。我想傳遞sql server的存儲過程中的值,它應該更改ssis中的id並獲取結果? –