我正在尝试找出一种方法来列出特定 SQL Server 实例“知道”的驱动器,并了解该过程。
我可以运行EXEC master..xp_fixeddrives
,它给了我一个驱动器列表,但是当我查看 GUI 时(例如,数据库 | 恢复数据库 | 从设备 | 添加),可用驱动器列表要少得多。
SQL Server 通过什么过程变得“知道”驱动器,是否有任何方法可以有问题地确定它知道的驱动器?
提前致谢!
我正在尝试找出一种方法来列出特定 SQL Server 实例“知道”的驱动器,并了解该过程。
我可以运行EXEC master..xp_fixeddrives
,它给了我一个驱动器列表,但是当我查看 GUI 时(例如,数据库 | 恢复数据库 | 从设备 | 添加),可用驱动器列表要少得多。
SQL Server 通过什么过程变得“知道”驱动器,是否有任何方法可以有问题地确定它知道的驱动器?
提前致谢!
我猜你实际上是在集群实例上运行。
EXEC master..xp_fixeddrives 正在返回底层操作系统知道的所有驱动器,因此您的集群实例无法使用很多驱动器
利用:
相反,它只会列出您的实例可用的那些
SQL Server 2008 R2 SP1 和 SQL Server 2012 添加了一个新函数sys.dm_os_volume_stats,与 xp_fixeddrives 不同,它已被记录和支持(并且还包括更多有用的信息)。问题是它只会返回至少有一个数据或日志文件的驱动器的信息,因为它需要 database_id 和 file_id 作为输入:
结果集: