如何将数据库架构从 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 更改为另一个架构?的主要内容,如果未能解决你的问题,请参考以下文章
Google BigQuery:错误:架构更新无效。字段已将模式从 REQUIRED 更改为 NULLABLE
将 iframe URL 更改为另一个协议会重新加载页面,但不会在从计时器触发时重新加载