我正在將數據庫從Teradata轉換爲SqlServer。我注意到所有的表和程序都以前綴「dbo」命名。 (例如「dbo.Table1」)。SqlServer中的dbo
我想知道是否以及如何擺脫「dbo」,因爲這會使轉換任務變得更容易。
我正在將數據庫從Teradata轉換爲SqlServer。我注意到所有的表和程序都以前綴「dbo」命名。 (例如「dbo.Table1」)。SqlServer中的dbo
我想知道是否以及如何擺脫「dbo」,因爲這會使轉換任務變得更容易。
dbo
是不是部分表名。它是表和存儲過程所附帶的模式的名稱。 dbo
是SQL服務器中的默認模式,但您可以根據需要添加其他模式。
請參閱this有關它們的MSDN文章。
dbo是模式,如果你願意,你可以指定一個新模式。 dbo默認是sql server。
如果您希望您可以創建新模式併爲其創建表,則dbo是SQL Server中的默認模式,如果用戶未設置模式,則爲 。
所有的表都必須進入一個模式。正如durilai所說,dbo是SQL Server的「默認」模式(它始終存在)。但是請注意,不同的用戶可以有不同的默認模式(如果存在多個)。
如果您在不指定模式的情況下引用表,那麼SQL Server將在您的默認模式中搜索它(對於任何其他對象也是如此)。
所以,如果您默認模式是DBO,下面的兩個語句是等價的:
select * from Table1
select * from dbo.Table1
架構是有用的。例如,我曾經單獨爲每個存儲過程授予應用程序登錄執行權限。現在,我將應用程序登錄執行權限授予包含所有存儲過程的模式。這很容易。