SQL Schema更改为“dbo.dbo”。改变表名后

时间:2014-01-03 20:46:34

标签: sql schema winsql

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

有谁知道如何将表格更改回原始架构?我使用WINSQL和sql server 2008.谢谢,

1 个答案:

答案 0 :(得分: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'