gpt4 book ai didi

sql - 为数据库创建同义词/更改数据库 View 指向

转载 作者:行者123 更新时间:2023-12-02 23:25:31 30 4
gpt4 key购买 nike

我知道CREATE SYNONYM不支持数据库,但我希望实现它提供的功能。

我们有数据库 A,其中包含数据库 B 上的表的 View 。问题是“数据库 B”并不总是称为“数据库 B”。我们使用数据库项目进行部署,如果没有“数据库 B”,目前会出现“无效对象名称”错误。

目前的解决方法是打开 .dbschema 文件并进行查找和替换。我想另一个选择是创建大量表同义词。

更改数据库的多个 View 引用而不单独更改每个 View 的最佳方法是什么?

谢谢

最佳答案

同义词是实现此目的的好方法。不过,您必须在对象级别创建同义词(正如您所发现的)。执行此操作的一种简单方法是编写一个脚本,该脚本运行 DatabaseB 中的表列表(来自您的示例),并为 DatabaseA 中的每个表创建一个同义词。保持同义词的名称相同,这样 View 中的代码就不必更改。例如,您在 DatabaseB 中有 tbl_a、tbl_b 和 tbl_c,您希望脚本最终执行以下操作:

create synonym [otherDb].[tbl_a] for [DatabaseB].[schemaB].[tbl_a]
create synonym [otherDb].[tbl_b] for [DatabaseB].[schemaB].[tbl_b]
create synonym [otherDb].[tbl_c] for [DatabaseB].[schemaB].[tbl_c]

现在,在您的 View 代码中,您将始终使用 [otherDb].[tbl_a]、[otherDb].[tbl_b] 和 [otherDb].[tbl_c]。希望这是有道理的。

关于sql - 为数据库创建同义词/更改数据库 View 指向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8297310/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com