【问题标题】:How to remove or alter the dbo prefix from SQL Server 2012 tables?如何从 SQL Server 2012 表中删除或更改 dbo 前缀?
【发布时间】:2014-10-29 01:53:45
【问题描述】:

有人已经问过这个问题here,但没有得到这个问题的答案。

如何将 SQL Server 2012 中以 dbo 前缀开头的表更改为不带 dbo 前缀的表?

【问题讨论】:

  • 您有什么情况吗?因为从性能的角度来看它很有用。
  • 你不能——至少不能没有任何东西。一个表总是在一个模式中 - 它可以被称为dbo(默认)或其他东西 - 但你不能有“无模式”......
  • 最重要的是,您不需要这样做。默认架构将与用户的默认架构相同,默认为dbo。如果架构与用户的相同,则无需写出架构(而且由于您显然根本不了解架构,因此很可能是:))。所以只需使用[MyTable] 而不是[dbo].[MyTable],就可以了。无论如何,如果写[dbo]. 这么麻烦,也许你应该看看其他方法来改进你的代码:) 我很久以前就开始写完全限定的名字,从那以后就再也没有回头了。跨度>
  • “前缀”到底是什么?
  • @Shaikh Farooque:实际上,我做到了。您可以在下面查看我的答案以获取解决方案。

标签: sql sql-server sql-server-2008 sql-server-2012


【解决方案1】:

这里是答案(改变!!!),对于任何有一天可能需要它的人:

IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'MyDbo')) 
BEGIN
    EXEC ('CREATE SCHEMA [MyDbo] AUTHORIZATION [dbo]')
END

ALTER SCHEMA MyDbo 
    TRANSFER dbo.your_old_table
GO

【讨论】:

  • 这不是问题的答案。这不会“删除”“dbo”(模式)。它只会改变它。请更改问题或答案。
【解决方案2】:

更改 > mydb.tableNamedbo.tableName

1.单击 F4 或(查看 > 属性窗口), 2 .然后单击您的表。 3.在属性窗口中,在模式字段中,更改属性。

【讨论】:

  • 这在 SQL SRV 2017 中不起作用。所有框都是灰色且不可编辑的。我需要摆脱 .dbo 的原因是因为我导入了 DB2 数据库并从它附带的所有表格,其中一个被弄乱了,数据没有附带。它不会让我编辑有问题的一列的列属性,因为当我去保存它时它说不,我必须删除表。没什么大不了的,我创建了另一个,所有 50 多个表的命名约定是 DB2INST1.WHATEVER,新表现在是 dbo.DB2INST1.WHATEVER。我不希望那里有那个 dbo。
猜你喜欢
  • 2010-10-20
  • 2018-12-26
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多