Sql server SQL中Access数据库的设计

Sql server SQL中Access数据库的设计,sql-server,ms-access,database-migration,Sql Server,Ms Access,Database Migration,我们有52个MS Access数据库,每个数据库有4个表。我们数据库中的总数据约为500万。现在我们计划迁移到SQL Server。我们已经设计了新的数据库,它将是一个SQL Server数据库,包含大约60个表 我的问题是-我们将如何将52个Access数据库集成到一个SQL Server数据库中? 是否可能,或者我们也必须在SQL Server中创建52个数据库,以便迁移数据?这52个数据库相互关联,在access中具有相同的结构?从技术角度来看,只创建一个SQL Server数据库是没有问

我们有52个MS Access数据库,每个数据库有4个表。我们数据库中的总数据约为500万。现在我们计划迁移到SQL Server。我们已经设计了新的数据库,它将是一个SQL Server数据库,包含大约60个表

我的问题是-我们将如何将52个Access数据库集成到一个SQL Server数据库中?
是否可能,或者我们也必须在SQL Server中创建52个数据库,以便迁移数据?这52个数据库相互关联,在access中具有相同的结构?

从技术角度来看,只创建一个SQL Server数据库是没有问题的,其中包含MS access数据库中的所有52*4表。SQLServer提供了各种逻辑分离对象的选项,例如使用模式。但是,同样,如果您决定创建单独的数据库,您仍然可以跨数据库编写查询,即使这些数据库不是托管在同一个SQL Server实例上(尽管在跨链接服务器编写查询时可能会有性能损失)

由于问题的细节有限,很难给出更精确的答案,但在大多数情况下,一个具有多个数据库模式的单一数据库(每个MS access数据库可能有一个模式)可能是最佳解决方案

现在,要将数据从MS Access迁移到SQL Server,您有多种选择。如果只需要执行一次性迁移,只需使用SQL Server附带的导入导出向导即可。向导会自动在目标数据库中为您创建表,还允许您保存SSIS包,以便再次迁移数据。

如果我是您(如果我不是,但如果我是…),我会将所有数据加载到4个表中。只需将每个Access数据库中的所有数据追加到一个表中。医生、项目、合同、机构。然而,当我附加每个数据库时,我会在每个表中添加一个新字段;国家。然后,当您将英格兰的数据附加到表中时,您还可以使用“England”填充该表的Country字段。等和你们所有的国家


现在,当需要访问数据时,您可以强制某些用户只能查看英格兰的数据,而某些其他人只能查看西班牙的数据,等等。。。这样,这4个表可以容纳您的所有数据,您仍然可以按您喜欢的任何国家进行筛选。

您处理的是哪种数据?为什么有几十个数据库,每个数据库有4个表?是相同的表数据吗?相同的表格布局?如果不获取更多信息就无法回答。不过,为了解决您的问题,在一个SQL Server实例中完全可以有52个数据库。事实上,如果需要,每个实例最多可以有32.767个数据库:基本上有52个国家,每个国家有一个数据库,其中我们目前有4个表,分别是医生、项目、合同、机构。该表在所有数据库中都有相同的布局。我可能会在设计中添加一个country表,然后在现有表中添加一个countryID。在迁移过程中,将使用要导入的国家的硬编码ID填充countryID字段。也就是说,如果美国有ID1,您只需将每个记录的CountryID设置为1即可。这将是非常直接的,真的。如果需要的话,您可以在以后对数据进行分区,这将带来额外的好处。如建议的那样,添加一列country,这样您就不需要50个相同数据库的实例,而需要维护那么多数据库的所有成本和时间。(这称为规范化数据)