小编And*_*rew的帖子

使用不同名称重新附加数据库后,如何刷新 SQL Server 跨数据库引用?(有隐藏的同义词吗?)

我在同一个 SQL 实例上有 2 个单独的 SQL 数据库。Database1 在其视图和存储过程中引用 Database2 上的表。一切正常,直到我们不得不创建一个新版本的 Database2 并将当前的 Database2 重命名为 Database3。

DBA 执行了以下操作:

  1. 使 Database2 脱机,然后将其重新附加为 Database3。然后从 SQL 中删除了 Database2。

  2. 创建了一个新版本的 Database2。

问题:

除非我们将服务器名称添加到任何查询中的 FROM 子句,否则 Database1 中的视图和存储过程仍在引用 Database3 上的表。

Database1 上的以下视图错误地转到 Database3:

select * from Database2.dbo.Projects
Run Code Online (Sandbox Code Playgroud)

为了正确的行为,我们指定服务器名称:

select * from ProductionDB.Database2.dbo.Projects
Run Code Online (Sandbox Code Playgroud)

为什么 Database1 的视图和存储过程仍然引用 Database3(除非我们指定服务器名称)?

是不是因为我们通过重新附加而不是备份和还原来重命名数据库?

Database1 中是否有需要更新的内部引用?

是否有我找不到的隐藏数据库同义词?

sql sql-server 备份数据库-管理交叉

sql-server backup

3
推荐指数
1
解决办法
1433
查看次数

标签 统计

backup ×1

sql-server ×1