使用SQL Server 2005執行以下語句(我的測試是通過SSMS)導致第一次執行時成功並且在後續執行時失敗。選擇非失敗列失敗
IF OBJECT_ID('tempdb..#test') IS NULL
CREATE TABLE #test (GoodColumn INT)
IF 1 = 0
SELECT BadColumn
FROM #test
這意味着有些事情是比較我在我的select語句訪問對錶上存在的腳本「編譯」當列的列。爲我的目的,這是不受歡迎的功能。我的問題是,是否有任何可以完成的工作,以便在每次運行中都能成功執行此代碼,或者如果這是不可能的,也許有人可以解釋爲什麼演示功能是可取的。我目前唯一的解決方案是用EXEC或選擇*來包裝選擇,但我不喜歡那些解決方案。
感謝
我在SQL嘗試這兩種解決方案都和失敗,「無效的列名稱BadColumn「。「 – 2009-08-29 06:30:40
如果臨時對象不存在,那麼我可以創建這個dbo.test proc,並重復運行它。如果臨時對象存在,那麼你會得到錯誤。 – 2009-08-29 07:06:33
+1爲好的解釋。表格表示無法找到BadCOlumn,「延遲名稱解析」適用於以後的使用。 – gbn 2009-08-29 08:32:17