0
在SQL Server 2008 R2 SP1中,我們有一個新的dmv - sys.dm_server_services
,這對於輕鬆獲取SQL Server服務相關信息非常有用。如何使用tsql獲取sql server服務信息
是否有任何類似的sys視圖/目錄或tsql黑客,我可以輕鬆查詢早期版本的SQL Server,如SQL Server 2005或SQL Server 2008?
非常感謝!
在SQL Server 2008 R2 SP1中,我們有一個新的dmv - sys.dm_server_services
,這對於輕鬆獲取SQL Server服務相關信息非常有用。如何使用tsql獲取sql server服務信息
是否有任何類似的sys視圖/目錄或tsql黑客,我可以輕鬆查詢早期版本的SQL Server,如SQL Server 2005或SQL Server 2008?
非常感謝!
您可以使用CLR或PowerShell來做到這一點,但可能不是直接的T-SQL。你正在談論的DMV從SQL Server進程中以這種方式提取這些信息,你不能從(TABLE DM_SERVER_SERVICES)
,而不是從你有編程訪問的某個系統表中獲取...
從PowerShell中,你可以使用像Get-Process
或Get-Service
(對當前實例名稱進行過濾,如果是默認實例,則爲MSSQLSERVER
)。用C#你可以look at this answer,但我不知道任何現成的SQLCLR代碼。
並且我毫不猶豫地提出這個建議,但是甚至可以使用'xp_cmdshell'來調用'tasklist'或'wmic process get'(儘管後者的默認輸出是可怕的)。 – 2012-07-11 19:46:25
例如:'EXEC master..xp_cmdshell'wmic service其中「Name like''%sql%''」get';' – 2012-07-11 20:27:15
感謝您的回覆。 xp_cmdshell在服務器上被阻止。 PS似乎是要走的路。奇怪的是,當我連接到遠程sql服務器。 get-service返回本地工作站上的所有東西 – 2012-07-12 17:38:44