3

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

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

4

5 回答 5

3

dbo 是架构,您可以根据需要指定新架构。dbo 默认是 sql server。

于 2010-03-31T06:17:24.407 回答
1

dbo不是表名一部分。它是表和存储过程附加到的模式的名称。dbo是 SQL Server 中的默认架构,但您可以根据需要添加其他架构。

请参阅有关它们MSDN 文章。

于 2010-03-31T06:21:14.150 回答
1

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

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

因此,如果您的默认架构是 dbo,则以下两个语句是等效的:

select * from Table1
select * from dbo.Table1
于 2010-03-31T06:21:36.943 回答
0

如果用户未设置架构,则 dbo 是 SQL Server 中的默认架构,如果您愿意,您可以创建新架构并为其创建表。

于 2010-03-31T06:21:04.133 回答
0

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

于 2014-05-23T17:53:32.237 回答