這可能是因爲該表不是在你drop table
命令強調,因爲它的名字仍然在你的智能感知的高速緩存。選擇編輯 - >智能感知 - >刷新本地緩存中SSMS(或直接按Ctrl
+ Shift
+ R
),看看錶名稱帶下劃線即可。
編輯:
另一種可能性是,你drop table
命令可能是同一批次的創建表另一份聲明,在這種情況下SSMS將不強調它,因爲它知道,即使表現在不存在,執行該命令的時間將會存在。例如:
表one
,two
,或three
在我的數據庫存在了,當我把這張截圖無。如果我突出顯示第6行並嘗試單獨運行它,它將會失敗。然而,你可以看到two
沒有下劃線在第6行,因爲SSMS可以看到,如果我運行整個腳本,該表將第5行創建。另一方面,three
是強調,第9行,因爲我註釋掉這將創造它在線8
所有提到的代碼,我想我們可能會犯太多這個問題。如果您嘗試從表中刪除select
,並且SQL Server告訴您它不存在,那麼它不存在。你不能依靠智能感知來告訴你它確實如此;上面的兩個例子可能不是智能感知可能會誤導您表格當前狀態的唯一方法。
如果你想最簡單的方法來了解與給定名稱的對象(如x_table
)是否存在,只需使用:
select object_id('x_table');
如果該查詢返回null,x_table
不存在,不管是什麼智能感知告訴你。如果它返回非null,那麼是某些對象與那個名字,那麼真正的問題是爲什麼你的select
語句失敗。爲了回答這個問題,我需要看看這個陳述。
向我們顯示您的錯誤。 –
你確定你正在創建一個表而不僅僅是一個臨時表嗎?請發佈更多的SQL語句。 –
您是否真的執行了語句並且出現錯誤,或者您是否看到紅色的下劃線/鼠標懸停錯誤。 SSMS非常善於解析你的語句,但是有很多方法可以組合你認爲不同的DDL語句 – Zeph