【发布时间】:2013-01-02 20:32:10
【问题描述】:
我是 SQL Server 2008 的新手,但在阅读了有关 Schemas 的内容后,我有这个问题。
目前,对于我们拥有的每个新客户,我必须手动创建一个新数据库,然后从现有数据库中导入所有对象(表/视图/存储过程等)。现在,只要开发人员有任何更新(例如,表结构的更改、存储过程等),都必须在所有数据库中进行更改。我已经厌倦了使用 DBComparer 来修复数据库中的差异。
是否有可能拥有一个包含所有表/存储过程/视图的“主架构”?这样所有“客户端数据库”都可以引用这个“主架构”,但仍然是能够毫无问题地维护自己的数据。
【问题讨论】:
-
不,模式可用于对数据库中的对象进行逻辑分组。 (据我所知)数据库之间没有共享>模式的概念。
-
相反,您应该确保所有生产数据库的结构完全相同,生成一个执行必要更新的脚本并在所有数据库中运行该脚本。不需要对所有数据库运行 DBCompararer。
-
@Mikael - 那么在上述场景中维护多个数据库的最佳解决方案是什么?
-
@MikaelEriksson - 我想知道数据库是否可以“共享”架构,以便所有更新都可以到达客户端,而不必像你提到的那样运行脚本。这可以大大减少错误/遗漏的机会
标签: sql sql-server sql-server-2008 multi-tenant