3

我試圖把舊的數據庫,現在是SQL Server 2008 R2上,並創建一個數據庫項目的Visual Studio 2010中它。有幾個存儲過程使用了一些「即時」臨時表(SELECT * INTO #NewTempTable)。顯然,這會導致數據庫項目中的一些SQL04151參考警告。SQL數據庫項目引用到即時臨時表

有沒有什麼辦法可以解決或只是可能忽略這些特定的警告?我知道直接的答案可能是在過程中實際聲明臨時表並定義列,但在這一點上,這不是一個選項。

回答

1

這似乎不符合最新的數據庫項目類型VS 2010,安裝爲SQL Server Data Tools一部分的問題。

嘗試安裝SQL Server數據工具。安裝後,您可以通過在解決方案資源管理器中右鍵單擊它來將數據庫項目升級到新類型。 (新項目類型向後兼容SQL 2008和SQL 2005,並且還帶有一些重大改進。)

僅供參考新項目類型具有非常通用的名稱「SQL Server數據庫項目」,您可以找到它在「SQL Server」模板組中,而不是「數據庫> SQL Server」組。

1

打開SET FMTONLY OFF在你的存儲過程。

從MSDN:

返回到客戶端只元數據。可以用於測試 響應的格式而不實際運行查詢。

您的問題是,默認情況下,Visual Studio已啓用此設置...它允許它確定響應的格式而不運行查詢,但如果使用臨時表,則這不起作用。

下面是關於MS連接這個問題的討論:Improve FMTONLY Intelligence

每微軟的迴應,這將固定在2012年,但不會在早期版本中得到解決。

最後,here's a related discussion on the FMTONLY issue

+0

將SET FMTONLY OFF置於我的存儲過程的開始位置似乎不讓VS知道。仍然收到相同的警告。當你聲明「在你的存儲過程中關閉SET FMTONLY OFF」是否你的意思是在開始時聲明它,或者在VS中有某個設置? –

+0

你能夠在你的存儲過程之外'SET FMTONLY OFF'嗎?如果不是,這可能不是解決您的問題的方法...... –