我正在使用以下代码来确定上次备份数据库的时间:
SELECT
bus.server_name AS servername
,sdb.Name AS DatabaseName
,COALESCE(CONVERT(VARCHAR(12), MAX(bus.backup_finish_date), 101), '-') AS LastBackUpTime
FROM sys.sysdatabases sdb
LEFT OUTER JOIN msdb.dbo.backupset bus
ON bus.database_name = sdb.name
WHERE
bus.backup_start_date >= DATEADD(DAY, DATEDIFF(DAY, 1, GETDATE()), 0) -- Previous day at midnight.
AND bus.backup_start_date < DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0) -- Today at midnight.
GROUP BY
sdb.Name
,bus.server_name
它似乎显示了我正在寻找的数据,但是如果我在开发服务器上运行此代码,例如,它会将其相应的生产服务器显示为bus.server_name
值。我试图理解为什么它显示的是生产服务器的名称而不是它本身。我可能不明白备份集表是如何获得它的价值的。
我知道我可以使用@@ServerName
该值,但我不确定这是否是获得该值的正确方法。