无法在对象资源管理器中查看已创建的表 - Microsoft SQL Management Studio

时间:2015-05-20 15:42:23

标签: sql sql-server tsql

我正在尝试在数据库中创建一些表,但是这些表没有出现在我的对象资源管理器视图中。

我的代码如下:

use testDB
GO

create table dbo.teacher (id varchar(5), name varchar(24));
insert into teacher values ('dm112', 'Magro, Deirdre');
insert into teacher values ('je232', 'Elkner, Jeff');
insert into teacher values ('cm147', 'Meyers, Chris');
insert into teacher values ('kr387', 'Reed, Kevin');


create table dbo.course (
    number varchar(6),
    name varchar(24),
    credits int,
    teacherid varchar(6) 
);
insert into course values ('SDV100', 'College Success Skills', 1, 'dm112');
insert into course values ('ITD110', 'Web Page Design I', 3, 'je232');
insert into course values ('ITP100', 'Software Design', 3, 'je232');
insert into course values ('ITD132', 'Structured Query Language', 3, 'cm147');
insert into course values ('ITP140', 'Client Side Scripting', 4, 'kr378');
insert into course values ('ITP225', 'Web Scripting Languages', 4, 'kr387');


create table dbo.student (id varchar(3), name varchar(24));
insert into student values ('411', 'Perez, Gustavo');
insert into student values ('412', 'Rucker, Imani');
insert into student values ('413', 'Gonzalez, Alexis');
insert into student values ('414', 'Melgar, Lidia');


create table dbo.enrolled (studentId varchar(3), courseNumber varchar(6));
insert into enrolled values ('411', 'SDV100');
insert into enrolled values ('411', 'ITD132');
insert into enrolled values ('411', 'ITP140');
insert into enrolled values ('412', 'ITP100');
insert into enrolled values ('412', 'ITP14p');
insert into enrolled values ('412', 'ITP225');
insert into enrolled values ('413', 'ITD132');
insert into enrolled values ('413', 'ITP225');
insert into enrolled values ('414', 'SDV100');
insert into enrolled values ('414', 'ITD110');

我在发布之前查了一下,发现了这个确切的问题:

Creating table with T-SQL - can't see created tables in Object explorer

然而,他正在使用“tempdb”,我不是。

我运行了查询

select name, type_desc from testDB.sys.objects

返回:

name          type_desc
---------------------------
...
teacher       USER_TABLE
course        USER_TABLE 
student       USER_TABLE
enrolled      USER_TABLE
...

我可以在这些表上修改,选择,删除等,但我看不到它们。我错过了什么吗?另一个问题提出了“测试”和“生产”的前景?他们没有详细说明,谷歌没有帮助我

:(

感谢您提供任何帮助。

编辑:卡尔下面找到了解决方案!虽然在对象资源管理器上单击刷新(F5)不会更新数据库视图,但右键单击数据库并单击刷新会更新表。

5 个答案:

答案 0 :(得分:14)

如果您在对象资源管理器中打开了表节点并且在运行DDL后没有刷新,则会发生这种情况。令人讨厌的是SSMS在DDL之后没有自动刷新资源管理器。可以通过对象资源管理器中的右键单击上下文菜单来刷新。

答案 1 :(得分:0)

我遇到的一种情况是,在对象资源管理器中刷新文件夹不会导致我的缺失表出现在“表”或“视图”文件夹中。像原始帖子一样,我能够查询表-但在对象资源管理器中找不到它。

Microsoft docs on the FROM clause指定FROM后面是table_source,它是合格的table_or_view_name,定义为“是表或视图的名称”。但是,尽管我的FROM子句有效,但没有在对象资源管理器中显示这样的表或视图名称(即使刷新后)。这是怎么回事?

原始问题具有以下查询:

select name, type_desc from testDB.sys.objects

它简化为:

select name, type_desc from sys.objects;

这给了我解决方案的答案,与原始问题有所不同。

在最初的问题中,缺失表的type_desc值是USER_TABLE,但在我的情况下,它显示了SYNONYM。

事实上,在对象资源管理器中有另一个用于同义词的文件夹-这是我找到要查询的“表”的地方。 (如果Microsoft更新其文档以提及同义词名称也是可与FROM子句一起使用的有效值的事实,这将很有帮助-至少在我看来,同义词不经常使用。)

答案 2 :(得分:0)

尝试转到“ SQL Server对象浏览器”选项卡,然后按一下刷新按钮--->“按对象分组”。

答案 3 :(得分:0)

这只是为我显示了另一台本地数据库服务器。

我必须明确地单击“添加SQL Server”(刷新旁边的图标),然后选择正确的“ MSSQLLocalDB”本地服务器。

如果您正在处理多个项目,这可能会有所帮助。

答案 4 :(得分:-2)

我认为您必须更新数据库中的表。如果您使用Visual Studio,则将轻松完成。创建表格时,您可以在窗口的左上角看到“更新”按钮。 enter image description here