题
我正在将数据库从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中的默认架构,如果用户未设置架构,则可以创建新模式并为其创建表。
模式很有用。例如,我曾经分别授予每个存储过程的应用程序登录执行权限。现在,我将应用程序登录执行权限授予包含所有存储过程的模式。这要容易得多。
不隶属于 StackOverflow