簡體   English   中英

當存儲過程更改時,為什么OLE DB數據源不更新元數據?

[英]Why won't an OLE DB data source update metadata when the stored procedure changes?

我正在從SSIS中的OLE DB數據源調用存儲過程。 SSIS為什么看不到我對存儲過程所做的更改? 似乎有關存儲過程的元數據被緩存在某個地方。 緩存了嗎? 如果是這樣,如何強制SSIS查看對存儲過程所做的更改?

問題可能不是SSIS沒有看到您的更改;而是SSIS沒有看到您的更改。 而是您所做的更改對SSIS不可見。

若要弄清這個非常令人困惑的答案,請嘗試以下操作:將OLE DB數據源拖到某些數據流上。 將其連接到具有相同參數等的相同存儲過程。檢查輸出列的元數據。

如果它們是您期望的,那么問題在於SSIS沒有看到您的更改。 如果這是答案,我會感到驚訝-如果有的話,SSIS對於看到元數據的更改(特別是在2005版本中) 挑剔。

如果沒有看到所需的元數據,則必須編輯有關存儲過程的更多詳細信息。 但總的來說,我可以說SSIS或任何其他軟件都無法確定結果集的形狀。 我相信他們使用SET FMTONLY命令來安排“不是真的”查詢的執行。 而是將所有參數傳遞給NULL。 當所有參數均為NULL或默認值時出現的結果集就是SSIS將看到的結果集。 如果您有一個復雜的SP,它根據輸入返回不同形狀的結果集,則可能是問題所在。

要重新生成元數據,只需刪除流管道(紅色和綠色),然后重新添加它們即可。 這是我找到的最簡單的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM