2010-12-08 79 views
3

我正在測試SSIS包和存儲過程,因爲我只是一個初學者。我需要做的是使用我已經安裝在源數據庫上的存儲過程來返回數據集,然後我需要一個ssis包來使用存儲過程返回的數據集作爲OLE DB源來填充第二個目標表。使用存儲過程作爲BIDS中的OLE DB源

基本上我有2個表: - test_source - test_destination

test_source具有一個表標題公司以3行 - (ID,名稱,建立)。我建立了一個存儲過程(spGetCompanies),將該表中的所有記錄都返回到結果集中。

然後在BIDS我有一個SSIS包從test_source表獲得的數據(在這種情況下,spGetCompanies SP),並將其插入到test_destination表。

誰能告訴我幫助我如何使用存儲過程作爲OLE DB源的spGetCompanies?

奇安

回答

5

Assuminng您已經設置了您的數據conenction,請執行以下操作:

  1. 雙擊OLEB來源
  2. 選擇您的連接管理器項目
  3. 選擇數據訪問模式作爲'SQL命令'
  4. 輸入你的SQL命令來執行你的SP(例如exec usp_myproc 1234)。
  5. 點擊「預覽」。你應該返回數據集。
  6. 點擊「OK」

完成

+0

所以,如果我有一個存儲過程標題spGetCompanies我會乾脆把查詢到:「EXEC spGetCompanies」? – cian1991ferrari 2010-12-08 13:56:08

1

並不總是可以使用一個OLEDB數據源中的存儲過程,如傑米·湯姆森解釋這裏:基本上https://web.archive.org/web/20141215063233/http://consultingblogs.emc.com/jamiethomson/archive/2005/12/09/2480.aspx

,因爲存儲過程有沒有關聯的元數據,SSIS嘗試通過查看存儲過程並抓取第一個選擇語句來猜測元數據。這可能是不準確的,或者不可能的(例如在SQL-CLR proc的情況下)。

答案應該是:如果你是幸運,按下預覽後你可以按ok。

3

可以exec sp之前嘗試set FMTONLY off;。爲我工作:)

相關問題