【问题标题】:Does any sql server database have a GUID that is different than its display name是否有任何 sql server 数据库的 GUID 与其显示名称不同
【发布时间】:2016-02-17 17:34:30
【问题描述】:

我想备份我们的 SQL Server 2008 R2 实时数据库,然后在我们的开发 SQL 服务器中恢复它。 我正在使用 SQL server 2008 R2 management studio 进行备份和恢复,如下:-

  • 我打开实时服务器数据库,右键单击它,任务>>备份。
  • 这会生成一个名为 live.bak 的文件。
  • 然后在我的开发数据库中创建一个新数据库,我将其命名为“TestDB”。
  • 我右键单击它,任务>>恢复。
  • 现在我已在 Dev 中恢复了 DB 的 Live 副本。

现在 dev 上的数据库的名称 = TestDB,但是是否有任何数据库的 GUID 可能与其名称不同?我的问题是我需要确认我们的实时和测试数据库没有获得相同的 GUID 或相同的名称? 任何人都可以对此提出建议吗? sql server 有 guid 吗?

【问题讨论】:

  • GUID 与其名称不同是什么意思?我不明白这个问题。是的,sql server 有一个 guid。它被称为唯一标识符。 msdn.microsoft.com/en-us/library/ms187942.aspx
  • @SeanLange 现在我运行此“从 sys.databases 中选择 *”并可以找到此列 service_broker_guid 这是数据库 guid 还是 id ?
  • 数据库没有我想你问的那样的“GUID”。由于系统原因,它确实有一个数据库 ID,但它在不同的服务器之间并不是唯一的,因为数据库不是以这种方式处理的。如果您要在不同的服务器/实例上恢复数据库,则另一个服务器/实例上的数据库命名和 ID 与原始数据库完全无关。

标签: sql-server sql-server-2008 sql-server-2008-r2 ssms


【解决方案1】:

在查询下方运行

select * from sys.databases

它显示了数据库的所有信息。数据库没有唯一信息,只有名称和database_id

顺便说一句,我不知道你为什么担心它!

【讨论】:

  • 所以 guid 是 service_broker_guid?
  • @JohnJohn,Server_broker_guid 是服务代理服务的 guid。我认为你可以得到正确的答案,如果你说出你提出的问题以及你想找到什么。
  • 我正在尝试查找数据库 id 或 guid ??
  • @JohnJohn,使用我的查询,您可以获得数据库 ID,它是每个数据库的标识符。所以我的答案是你要找的吗?如果是,请将其标记为答案。谢谢
【解决方案2】:

此查询返回当前数据库所需的 GUID。

SELECT database_guid 
FROM sys.database_recovery_status
WHERE database_id = DB_ID()

当然,用户总是可以在这个 GUID 之后重命名他的数据库。 ?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2022-10-23
    • 1970-01-01
    • 2013-02-24
    • 2018-07-17
    • 1970-01-01
    相关资源
    最近更新 更多