2010-03-31 72 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

架構是有用的。例如,我曾經單獨爲每個存儲過程授予應用程序登錄執行權限。現在,我將應用程序登錄執行權限授予包含所有存儲過程的模式。這很容易。