2016-12-06 52 views
2

我试图找到一种方法来使用T-SQL来获取和设置数据库服务器(或命名实例)的备份位置。这相当于使用SSMS右键单击实例名称 - >属性 - >数据库设置。使用T-SQL获取/设置服务器备份位置

我发现你可以使用master.dbo.xp_instance_regread从注册表中查询当前位置;这是最好的方式,如何更新这个位置?

谢谢。

+0

似乎有不被这样做,而不使用'dbo.xp_instance_regread'的一种方式。看到一些讨论[这里](http://www.sqlservercentral.com/Forums/Topic1319398-1550-1.aspx)。如果你描述SSMS的功能,它也会使用它。 – adrianbanks

回答

0

看是否有此得到你所需要的:

SELECT physical_device_name, sd.name 
    FROM msdb..backupmediafamily bmf 
    INNER JOIN msdb..backupset bms ON bmf.media_set_id = bms.media_set_id 
    INNER JOIN master..sysdatabases sd ON bms.database_name = sd.name 
    AND bms.backup_start_date = (SELECT MAX(backup_start_date) FROM [msdb]..[backupset] b2 
            WHERE bms.database_name = b2.database_name AND b2.type = 'D') 
    WHERE sd.name NOT IN ('Pubs','tempdb','Northwind', 'Adventureworks') 

Reference