轉載於https://blog.csdn.net/Ropark/article/details/105910677
問題復現
最近在用 SQL Sever 開發,需求更新之后要將原有表擴展成兩個表,因此需要進行改名操作。
修改完畢之后能查詢到值,但表名仍存在紅色下划線,提示“對象名xxx無效”,但對表操作能正常執行。
產生原因
本地的 SQL Server 客戶端在連接到數據庫之后,會獲取數據庫中的數據字典信息,包括表、字段、視圖、存儲過程等基礎信息,並將這些信息保存在客戶端的緩存中。因此能實現表名、列名的模糊匹配(實際是從緩存中讀取匹配內容)。
當某個表的信息進行更新之后,僅僅更新了服務器端的數據庫數據,本地的緩存並沒有刷新,因此也就不能實現匹配。
解決方法
1. 重啟本地客戶端如 SSMS,重新獲取數據字典信息到緩存中。
2. SSMS 中 “編輯”—— “IntelliSense” —— “刷新本地緩存”
附:更新表名SQL語句(SQL Sever)
修改表名:EXEC sp_rename '原有表名', '新表名';
修改列名:EXEC sp_rename '表名.[原有列名]', '新列名' , 'COLUMN';
</article>