我尝试使用新表名更改表。我成功更改了名称,但架构也从“dbo”更改。成为“dbo.dbo。”。当我尝试从新表中选择数据时,它在消息框中显示该表无效,因此我无法对新表执行任何操作。
有谁知道如何将表格更改回原始架构?我使用WINSQL和sql server 2008.谢谢,
答案 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'