0

我试图用一个新的表名来改变一个表。我成功更改了名称,但架构也从“dbo”更改。成为“dbo.dbo.”。当我尝试从新表中选择数据时,它会在消息框中显示该表无效,因此我无法对新表执行任何操作。

有谁知道如何将表更改回原始模式?我将 WINSQL 与 sql server 2008 一起使用。谢谢,

4

1 回答 1

11

我的猜测是,您实际上只是将表重命名为[dbo.tablename],其完全限定名称为[dbname].[dbo].[dbo.tablename]. 当您右键单击以重命名 SSMS 中的表名时会发生这种情况,我想 WinSQL 正在做同样的事情(尽管我不知道为什么在包含 SSMS 时使用该工具)。当您右键单击时,它会删除架构名称,这使您认为您需要完全限定新名称,但您不需要。

您应该可以安全地右键单击并将表名重命名为新表名。

不过,可以肯定的是,您可以运行:

select * 
    from sys.schemas
 where name = 'dbo.dbo';

只是为了确认您没有创建新架构。

编辑

为了完整起见,我将合并@billinkc 的评论:

运行此查询以获取表的确切架构:

select 
    s.name as SchemaName, 
        t.name as TableName
from sys.schemas s
    join sys.tables t 
    on s.schema_id = t.schema_id
where t.name = 'tablename'
于 2014-01-03T21:06:24.647 回答