Dot-Net

TableAdapter 配置嚮導不喜歡 SP 中的臨時表

  • April 8, 2014

我有一個儲存過程,我在數據集中使用它在 ReportViewer 中生成報告。

該 SP 使用臨時表來儲存中間值,以便在 SP 結束時在計算中使用這些值。

臨時表都在 SP 結束時被乾淨地刪除。

我可以毫無問題地在 SSMS 中執行 SP,它會返回我期望的數據。

但是,當使用 TableAdapter 配置嚮導在 VS2012 中更新我的 xsd 時,它給了我錯誤Invalid object name '#Held'(其中 #Held 是臨時表之一的名稱)。

這是怎麼回事?

#temp 表和表適配器存在一些已知問題。

有些人通過明確選擇列名來解決它,例如:

SELECT column1, column2, ... from #temptable而不是SELECT *(如果你這樣做)

您也可以嘗試使用table變數而不是臨時表。

由於未知原因,此處所述的答案非常有效。

只需將以下程式碼放在 SP 的 AS 部分之後的儲存過程之後。

IF 1=0 BEGIN
   SET FMTONLY OFF
END

引用自:https://stackoverflow.com/questions/17368886