将数据从一个数据库中的自定义架构移动到新数据库中的默认架构需要哪些步骤

Nat*_*ate 1 schema sql-server

为了便于论证,让我们假设我在单个 SQL Server 数据库中有以下表。

mySchema.Users
mySchema.Products
-- 
secondSchema.Users
secondSchema.Contracts
secondSchema.ContractItems
--
oldSchema.People
oldSchema.Table1
oldSchema.Table2
oldSchema.Table3
oldSchema.Table4
-- 
and so on and so forth
Run Code Online (Sandbox Code Playgroud)

每个“模式”都完全独立于其他“模式”。它们位于单个数据库中的唯一原因是托管和成本限制。在一个完美的世界中,这些本来应该在单独的数据库中。

当(如果有的话)我需要将 secondSchema 移动到一个新数据库时,我需要做什么,这完全是因为它的使用量增加了,现在需要将它存放在自己的数据库中。


我已经查看了关于何时使用非 dbo 模式与新数据库的决策标准,正如我上面所说的,它们在同一个数据库中没有关系或事务的理由。他们在那里是出于成本原因。

Tho*_*ger 5

您可以编写数据库的那部分脚本,然后CREATE DATABASE使用原始数据库中的脚本模式和数据运行。

当您生成脚本...时,您将能够选择特定对象而不是整个数据库。您可以选择所需的架构以及该架构拥有的所有对象。这将生成一个包含您的架构和架构对象的脚本。有点手动操作,但可能是最简单的方法。

在生成的脚本中,您可以将架构名称更改为新数据库架构的名称,但要意识到对象定义也需要反映新架构的名称。