gee*_*nit 3 t-sql database sql-server guid
有没有办法从SQL 2005数据库中获取唯一的数据库标识符(如GUID)?
我发现这篇文章:http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.database.databaseguid%28v=sql.90%29.aspx
但是,我需要能够从T-SQL而不是VB获取DatabaseGuid.
编辑:我试图唯一确定我连接的数据库.通过代码我在SQL Compact和SQL Server之间手动同步记录.现在我的用户处于测试环境中,并且当他们将来指向生产SQL时,我将需要重新同步整个表而不是依赖于rowversion.生产服务器上的rowversions将有所不同,如果我能够检测到数据库GUID更改,我可以重新同步整个表.
提前致谢.
无论SMO用什么来获取数据库guid,你都应该能够做到这一点.如果您在确定SMO正在做什么时遇到问题,您可以使用分析器监视执行的内容并将其弄清楚.
在这种情况下,SMO可能会database_guid从sys.database_recovery_status以下位置读取值:
用于将数据库的所有数据库文件关联在一起.所有文件必须在其标题页中具有此GUID,以便数据库按预期启动.只有一个数据库应具有此GUID,但可以通过复制和附加数据库来创建重复项.当您还原尚不存在的数据库时,RESTORE始终会生成新的GUID.
对于正在寻找返回数据库 GUID 的查询的其他人:
SELECT d.name, drs.database_guid, d.group_database_id
FROM sys.databases d
JOIN sys.database_recovery_status drs
ON d.database_id = drs.database_id
Run Code Online (Sandbox Code Playgroud)
它返回可用性组中此数据库的数据库名称、数据库 GUID 和 GUID。如果数据库不在 AG 中,则最后一个值返回 null。这适用于 SQL Server 2016。
| 归档时间: |
|
| 查看次数: |
7775 次 |
| 最近记录: |