2011-11-23 20 views
2

如何獲取與SQL Server實例關聯或正在使用的所有驅動器的列表(2005 &)?該列表應包括固定的硬盤驅動器和安裝點。我一直在玩sp_OAGetProperty,但沒有給我想要的東西。如何將驅動器映射到SQL實例?

如果通過T-SQL無法實現,我的下一站/嘗試將在Powershell中完成。

+0

請參閱:[CLR存儲過程以獲取磁盤空間信息](http://weblogs.sqlteam.com/tarad/archive/2007/12/18/60435.aspx) –

+1

是否要將所有驅動器的實例可以查看或使用什麼? – JNK

+0

更多關於後者。數據,tempdb和日誌驅動器很容易獲得,但是備份驅動器卻是更難以獲得的驅動器。 – ehmBEE

回答

0

這裏是會得到你想要的東西:

select distinct LEFT(physical_name, 2) 
from sys.master_files 

什麼,做是會擋住你的給定實例使用的所有數據庫彙總驅動器(即C:)。

+0

目前還不清楚他是否想知道所有正在使用的驅動器或所有可以使用**的驅動器。這將只顯示當前有數據庫連接的驅動器。 – JNK

+0

@JNK「獲取所有關聯或正在使用的驅動器」我將其表示爲所有正在使用的驅動器。不過,我可能弄錯了。 – 2011-11-23 20:23:31

+0

'Associated'是什麼讓我覺得他想要實例可以訪問的所有驅動器。 – JNK

3

這裏會列出所有連接的驅動器:

EXEC master..xp_fixeddrives 

鯊魚的查詢是好的,列出了SQL Server有在從SQL Server系統的角度使用的驅動器。

select distinct LEFT(physical_name, 2) 
from sys.master_files -- Sharky's query 

提到的第二個查詢,也不會告訴你,如果存儲過程引用的SQL Server實例沒有使用明確具體的物理驅動器正在使用由SQL Server的所有驅動器。要確定這一點,您可能需要在代碼中搜索對由第一次存儲過程調用產生的列表中的驅動器的引用。

在我的情況下,第二個查詢只顯示驅動器D:但我有存儲過程中的代碼引用驅動器F獲取批量插入數據庫的文件。

0

如果您不在羣集上,機器上的任何驅動器都可用於您的數據庫文件。如果您在羣集上,請給sys.dm_io_cluster_shared_drives一看。

+0

這對MS配置的羣集特別有用。謝謝! – ehmBEE