Sql 如何删除此类型的表名称[somepreffix].table

Sql 如何删除此类型的表名称[somepreffix].table,sql,sql-server,smss,Sql,Sql Server,Smss,我有一个组织的数据库,其中所有的表都是这样的: EMPRE01.1表1 表1.2 等 如果我键入此查询:SELECT*FROM sysobjects,其中xtype='U' 我将得到这个结果作为表名:表1,表2 但是如果我尝试这个查询:SELECT*fromtable1它将不起作用 仅当我这样键入时:SELECT*FROM EMPRE01.table1 如何将数据库转换为“正常”模式?键入查询时: SELECT * FROM table1 它将搜索为dbo.table1。因为dbo是默认模式

我有一个组织的数据库,其中所有的表都是这样的: EMPRE01.1表1 表1.2 等

如果我键入此查询:
SELECT*FROM sysobjects,其中xtype='U'
我将得到这个结果作为表名:表1,表2 但是如果我尝试这个查询:
SELECT*fromtable1
它将不起作用 仅当我这样键入时:
SELECT*FROM EMPRE01.table1


如何将数据库转换为“正常”模式?

键入查询时:

SELECT * FROM table1
它将搜索为
dbo.table1
。因为
dbo
是默认模式。您需要显式说明架构名称:

所以


注意:这假设查询使用的是同一个数据库。

您可以通过
使用
为会话指定默认数据库。但是最好使用完全限定名,这样会混淆dbo和默认模式,这是没有帮助的。当对象不符合模式限定时,总是首先使用默认模式来查找对象。不要假设dbo是默认模式。你的最后一句话同样令人困惑。您不需要“更改”默认模式-您只需要使用适当的模式限定对象名称。根据您的建议,我使用此查询将表更改为dbo。而且效果很好选择“ALTER SCHEMA dbo TRANSFER['+SysSchemas.Name+']。['+DbObjects.Name+'];”从sys.Objects DbObjects内部连接sys.Schemas DbObjects.schema\U id=SysSchemas.schema\U id,其中SysSchemas.Name'dbo'和(DbObjects.Type IN('U','P','V'))“”
SELECT * FROM EMPRE01.table1