如何将数据库架构从 dbo 更改为另一个架构?

Posted

技术标签:

【中文标题】如何将数据库架构从 dbo 更改为另一个架构?【英文标题】:How do I change DB schema from dbo to another schema? 【发布时间】:2014-12-28 10:12:32 【问题描述】:

我在 SQL Server 2012 管理下创建了一个在多个表之间有大量连接的新视图。

视图是在名称 dbo.vw_clientsTransactions 下创建的。

如何将数据库架构从 dbo.vw_clientsTransactions 更改为 CL.vw_clientsTransactions

谢谢

【问题讨论】:

投反对票的人,下次有尊严并说明你投反对票的理由。 -1 从我到你。 【参考方案1】:

要更改任何对象的架构,请使用以下语法:

alter schema [new_schema] transfer [old_schema].[object_name];

所以,在你的情况下,你会这样做:

alter schema [CL] transfer [dbo].[vw_clientsTransactions];

【讨论】:

【参考方案2】:

您必须删除此视图,并在创建时在视图名称中指定您的架构!

【讨论】:

有一些(非 SSMS)工具可以在模式之间移动对象。 它不允许我将其保存在架构下,如果我尝试将其保存在 CL.vw_clientsTransactions 下,我会得到:Invalid identifier CL.vw_clientsTransactions 如果找不到创建脚本,可以使用'sp_helptext vw_clientsTransactions'。 您不需要删除/重新创建。看我的回答。【参考方案3】:

好的,现在我知道了:

1.创建您的视图,将其保存为您想到的任何名称。

2.右击视图:Script View as => Create To => New Query Editor Windows

3. 现在屏幕上会出现一个带有用于创建视图的脚本的窗口。

4.将dbo更改为CL(在我的情况下),然后运行查询(F5 / Execute)就完成了。

【讨论】:

正如我所说,任何工具都只会创建另一个视图并删除原始视图。请务必删除原件以避免混淆。 @rodrigogq:谢谢! 您不需要删除/重新创建。看我的回答。

以上是关于如何将数据库架构从 dbo 更改为另一个架构?的主要内容,如果未能解决你的问题,请参考以下文章

将数据框架构从 int 更改为 double 的问题

Google BigQuery:错误:架构更新无效。字段已将模式从 REQUIRED 更改为 NULLABLE

将 iframe URL 更改为另一个协议会重新加载页面,但不会在从计时器触发时重新加载

修改现有表的架构时出现“找不到对象”错误

将 Delphi/Oracle 应用程序从 2 层更改为 3 层

如何在 SQL Server [2005] 中创建类似于 .dbo 的架构