sqlserver2008 新创建的表无法查询

除首次创建的表外其它再创建的Table、View、Procedure都无法查询,求高人帮忙指点。
我新建了一个数据库MyDB,在里面添加一个表Table_1,通过select * from Table_1可以查询到表的信息,但是再添加Table_2和Table_3都无法查询,显示对象名无效(自动提示里面也只有Table_1,没有Table_2和Table_3)。而在左侧的列表里,Table_1、Table_2、Table_3是同时存在的,只有关掉management studio再重新打开,才能通过查询语句访问到Table_2和Table_3。并且这时候再新建的表,也是无法通过语句来查询的,必须再次关掉重开…………
感觉是sql没有及时更新?还是在等待结束请求?试过好多方法,都无法解决,求解!

造成这种问题的原因:

1、SQL Server的缓存机制

解决方案:编辑 》 IntelliSense 》 刷新本地缓存

2、新创建的表所属数据库和当前查询使用的数据库不是同一个
解决方案:查找新创建表所在数据库,在查询之前先执行‘USE 数据库名称’
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-08
我有个不成熟的答案,是否你的Table、View、Procedure都建到了master数据库里了呢?
又或者是建到了你的MyDB中,但是你查询的时候是在master数据库中查询的呢?
08新添加的东西就是要重新连接才会有提示追问

首先,谢谢这位朋友的热心回答,但你的回答实在“蛋疼”,虽然越是低级的问题越是容易被人忽略,但是这个问题是SqlServer缓存机制的原因。
其次,不要把问题说的太绝对,“08新添加的东西就是要重新连接才会有提示 ”,坑爹啊!不懂的问题要虚心求教,慢慢的壮大自己。
最后,解决步骤如下:
编辑 》 IntelliSense 》 刷新本地缓存

总结:自己对SqlServer Managerment Studio的了解甚少,需努力学习。

追答

首先感谢你的纠正,学习了,我一直以为新建的表以及存储过程必须重新连接才能在智能提示中显示。不过你的问题描述的有一点歧义,我以为你是说select无法查询新建的表,至少我没遇到这样的情况,除非建在了别的库中。
还是非常感谢你,纠正了我一直以来的误区

本回答被提问者和网友采纳
第2个回答  2015-12-01

    是否已经链接了数据库,

    创建新表的时候语句是否准确,SQL语法必须要准确才能创建新表,有时候一个字母输入错误也会导致。

    表内的数据是否已经录入,录入时的SQL语句时候正确,SQL语法有着严格的要求。

第3个回答  2015-11-12
你当前用户权限不够。用sa登陆就可以查询。或者用sa将该表的库的访问权限赋给当前用户。
第4个回答  2015-11-24
朋友,请把创建的表的语句和查询语句发来
相似回答