2010-03-31 71 views
2

我正在将数据库从Teradata转换为SqlServer。我注意到所有的表和程序都以前缀“dbo”命名。 (例如“dbo.Table1”)。SqlServer中的dbo

我想知道是否以及如何摆脱“dbo”,因为这会使转换任务变得更容易。

回答

1

dbo不是部分表名。它是表和存储过程所附带的模式的名称。 dbo是SQL服务器中的默认模式,但您可以根据需要添加其他模式。

请参阅this有关它们的MSDN文章。

3

dbo是模式,如果你愿意,你可以指定一个新模式。 dbo默认是sql server。

0

如果您希望您可以创建新模式并为其创建表,则dbo是SQL Server中的默认模式,如果用户未设置模式,则为 。

1

所有的表都必须进入一个模式。正如durilai所说,dbo是SQL Server的“默认”模式(它始终存在)。但是请注意,不同的用户可以有不同的默认模式(如果存在多个)。

如果您在不指定模式的情况下引用表,那么SQL Server将在您的默认模式中搜索它(对于任何其他对象也是如此)。

所以,如果默认模式是DBO,下面的两个语句是等价的:

select * from Table1 
select * from dbo.Table1 
0

架构是有用的。例如,我曾经单独为每个存储过程授予应用程序登录执行权限。现在,我将应用程序登录执行权限授予包含所有存储过程的模式。这很容易。