SQL Server表架构名称

时间:2016-03-03 07:25:17

标签: sql sql-server sql-server-2014

我对表格中的架构有一些疑问。

有时,当您创建表时,默认架构是dbo.TableName。 dbo是默认的模式名称吗?我相信你可以在正确创建表时更改或指定模式,因为有些表具有不同的模式,如:Sales.Tablename或Users.Roles等。我相信模式的目的是在表之间产生差异或者这样的事情?类似于C#类中的命名空间。是否可以有两个具有相同名称但具有不同模式的表,例如:Sales.Users,Marketing.Users?

2 个答案:

答案 0 :(得分:2)

  1. dbo是默认架构。您可以更改每个sql-login的默认架构。 如果您不小心在错误的架构中创建了一个表,则可以移动它:

    - 将Peter表从Sales架构移动到Orders架构

    ALTER SCHEMA订单TRANSFER Sales.peter

  2. 您可以通过在表名称之前指定表来指定要创建表的模式:

    CREATE TABLE Sales.Users(id int);

  3. 模式的一个目的是创建表的逻辑组,就像C#中的名称空间一样。它们对于控制权限等也很有用。

  4. 是的,表名只需要在每个模式中都是唯一的。

答案 1 :(得分:1)

  

有时,当您创建表时,默认架构是dbo.TableName。是dbo   默认架构名称?

你为什么这么问?很明显,如果你把它作为默认值,dbo是默认的schame名称,或者?最重要的是,它是新数据库唯一可用的模式。

  

我相信你可以在正确创建表时更改或指定架构,

如果你不能使用它们,那么多个模式会有什么意义呢?并且由于create table语法清楚地表明您可以指定模式。

  

我认为模式的目的是在表格之间做出改变   这样的事情?类似于C#类中的命名空间。

这几乎总结了它。

  

是否可以有两个名称相同但架构不同的表,

你花10秒钟尝试一下呢?您是否因为尝试完全简单化的概念而受到挑战?答案是肯定的。对象名称必须是唯一的 - 在他们的模式中。