我是SQL Server 2008的新手,但读过有关Schemas的内容后,我有了这个问题。
目前,对于我们拥有的每个新客户端,我必须手动创建一个新数据库,然后从现有数据库导入所有对象(表/视图/存储过程等)。现在,只要开发人员有任何更新(例如,表结构,存储过程中的更改等),就必须在所有数据库中进行更改。我厌倦了使用DBComparer来修复数据库中的差异。
是否可以拥有一个包含所有表/存储过程/视图的“主模式”?这样所有“客户端数据库”都可以引用此“主模式”,但仍然是能够毫无问题地维护自己的数据。
答案 0 :(得分:0)
不,这是不可能的。 Schemata存在于数据库中。
多个客户端数据库SIMILAR Schema,是的,但您必须逐个升级。 Schema不在master中 - 它存在于每个数据库中,并且无法更改。事实上,每个Schema都是完全独立的,你可以在一个数据库中拥有01个“相同的内容”Schemata。
答案 1 :(得分:0)
可以使用单个“主”模式。可能不可能拥有这个“主”架构,并且仍然让每个客户端维护自己的数据而没有任何问题。
您所看到的是一种多租户架构。微软的Multi-Tenant Data Architecture是对这些问题的一个很好的介绍。
This SO answer概述了您需要考虑的各种权衡因素。