我正在将数据库从Teradata转换为SQLServer。我注意到所有表和过程均由前缀“ DBO”命名。 (例如“ dbo.table1”)。

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

有帮助吗?

解决方案

dbo不是 表名的一部分。将表和存储过程附加到该模式的名称。 dbo 是SQL Server中的默认模式,尽管您可以在需要时添加其他架构。

这个 MSDN关于他们的文章。

其他提示

DBO是架构,如果愿意,您可以指定新模式。 DBO默认是SQL Server。

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

如果您在没有指定模式的情况下对表进行引用,则SQL Server将在您的默认模式中搜索它(并且其他任何对象也是如此)。

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

select * from Table1
select * from dbo.Table1

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top