如何在将数据库移动到另一个数据库时识别它 server/instance

How to identify a database when it's being moved to another server/instance

我正在编写一个用于执行多个数据库操作的工具。
但是该工具只能与一个特定的数据库一起使用。

现在我正在寻找一种方法,以安全地识别数据库,该工具连接到。

首先我想只检查像 SERVERNAME\INSTANCE#Database.
这样的字符串 我还发现 this 问题解决方案是使用 GUID,但是如果数据库在另一台服务器上恢复,这个 GUID 会改变。

即使数据库被移动到另一个服务器或实例,或者数据库名称发生变化,也应该能够识别该数据库。

有可靠的方法实现吗?

您也许可以通过 extended property 来实现。

要创建:

exec sp_addextendedproperty @name = 'dbUniqueIdentifier' @value = 'ABCD1234'

确认:

select value from sys.extended_properties where name = 'dbUniqueIdentifier'

在我的组织中,我们使用扩展属性来识别数据库模式来自哪个构建和变更集。这些属性仍然存在 backup/restore/migration.