SQL 服务器数据库的唯一 ID
Unique ID of the SQL Server Database
有许多 SQL 服务器数据库是从同一个 .BAK
文件创建的。
我需要获得每个人的唯一 ID 值。获取 DBfiles 的 UID returns 到处都是相同的值。
Oracle 的不同情况。它具有每个数据库服务的唯一 ID。
请让我知道在我的情况下会使用什么技巧或方法?
它应该只是一个 SQL 查询。
谢谢。
应该这样做:
Select * from Sys.Databases
在你的情况下,我认为你需要 name
、database_id
和 owner_sid
列,不确定它们是否都与你的问题相关。
出于产品许可的原因,我需要获得一个唯一的数据库 ID,最终选择了 service_broker_guid
。例如
SELECT db.service_broker_guid FROM sys.databases db WHERE db.name = 'MyDatabase';
结果:ED2E8477-CDC3-49DF-ABEE-341B3E9277DF
注意:对于 is_broker_enabled = 0
的数据库,此值通常为 00000000-0000-0000-0000-000000000000
。不过,在我们的例子中,我们只是寻找第一个不是零的值:
SELECT TOP(1) service_broker_guid FROM sys.databases WHERE service_broker_guid <> '00000000-0000-0000-0000-000000000000' ORDER BY database_id;
我认为除非移动或重新创建数据库,否则您对此相当安全,但我尚未对其进行详尽测试。 (如果客户出现问题,我们只会发布新的许可证密钥。)
有许多 SQL 服务器数据库是从同一个 .BAK
文件创建的。
我需要获得每个人的唯一 ID 值。获取 DBfiles 的 UID returns 到处都是相同的值。
Oracle 的不同情况。它具有每个数据库服务的唯一 ID。
请让我知道在我的情况下会使用什么技巧或方法? 它应该只是一个 SQL 查询。
谢谢。
应该这样做:
Select * from Sys.Databases
在你的情况下,我认为你需要 name
、database_id
和 owner_sid
列,不确定它们是否都与你的问题相关。
出于产品许可的原因,我需要获得一个唯一的数据库 ID,最终选择了 service_broker_guid
。例如
SELECT db.service_broker_guid FROM sys.databases db WHERE db.name = 'MyDatabase';
结果:ED2E8477-CDC3-49DF-ABEE-341B3E9277DF
注意:对于 is_broker_enabled = 0
的数据库,此值通常为 00000000-0000-0000-0000-000000000000
。不过,在我们的例子中,我们只是寻找第一个不是零的值:
SELECT TOP(1) service_broker_guid FROM sys.databases WHERE service_broker_guid <> '00000000-0000-0000-0000-000000000000' ORDER BY database_id;
我认为除非移动或重新创建数据库,否则您对此相当安全,但我尚未对其进行详尽测试。 (如果客户出现问题,我们只会发布新的许可证密钥。)