我试图用一个新的表名来修改一个表。我成功地更改了名称,但模式也从“dbo”更改。成为“dbo.dbo”。当我尝试从新表中选择数据时,它会在消息框中显示该表无效,因此无法对新表进行任何操作。
有人知道如何将表更改为原始模式吗?我在sql server 2008中使用了WINSQL。谢谢,
发布于 2014-01-03 21:06:24
我的猜测是,您实际上只是将表重命名为[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'https://stackoverflow.com/questions/20912406
复制相似问题