我可以将多个 SQL 数据库迁移到单个 Babelfish 实例中并让它们为不同的用户隔离吗?

Can I migrate multiple SQL DBs into a single Babelfish instance and keep them segregated for different users?

我正在将多个 SQL 数据库(比如 A 和 B)迁移到单个 Babelfish 实例。

我有 SQL 个具有 tablex、y 和 z 的实例 A 和具有 tables x、y 和 z 的实例 B。

我希望 Babelfish 有一些方法让它们共存 A.x、A.y、A.z、B.x、B.y 和 B.z.

最初的想法是在 table 名称前添加前缀(因此 A_x、A_y 等)但是由于需要更改应用程序,所以这是站不住脚的,所以我需要一些只要连接指向 A 或在开始时执行“USE A”,就可以使其对应用程序透明。

Babelfish 允许您迁移数据库 A 和 B,同时保留 SQL 服务器数据库结构以及引用 A.dbo.x、B.dbo.x 等(注意 cross-DB 当前数据库之外目前尚不支持具有 3 部分对象名称的查询,但这些正在开发中)。当您 运行“使用 A”然后执行“SELECT * FROM x”时,您将触及 A.dbo.x。当您首先执行“USE B”时,您将触摸 B.dbo.x。 因此,当您 运行 针对 Babelfish 创建数据库 A 和 B 的 DDL 时,您将获得与 SQL 服务器中的基本相同的内容,并且无需更改任何语法(再次假设cross-DB 当前不需要查询。

现在,如果您的问题是如何将数据库 A 和 B 合并为一个数据库,那么这与您在 SQL 服务器本身中执行此操作的方式没有什么不同。在这种情况下,我建议实际在 SQL 服务器中执行该合并,然后 reverse-engineering 生成的 SQL 服务器数据库,然后 运行 将该脚本针对 Babelfish 以重新创建该数据库。