2012-07-16 72 views
0

我的數據庫所有者沒有對master數據庫的任何權限,並且正在查找是否存在SQL Server服務器以及數據庫是否存在的方式服務器。如何確定是否存在SQL服務器或數據庫

+0

這似乎是一個有效的問題,所以upvoted,但很高興看到你已經嘗試過。 – dmp 2012-07-16 13:08:05

+1

投票結束後,人們應該寫出理由,以便我也能找到弱點。 – Abdul 2012-07-16 14:28:19

回答

0

您可以使用SMO來管理SQL Server對象模型。

0

首先讓我們檢查一下sqlserver的實例是否在本地機器上可用。

這可以通過SMO(reference of SMOanother reference)像

using Microsoft.SqlServer.Management.Smo; 

DataTable dataTable = SmoApplication.EnumAvailableSqlServers(true);//if true is passed it 
//will enumerate local instance only. 

foreach (DataRow dataRow in dataTable) 
{ 
    if ((dataRow["Server"] as string) == "MyServerName") 
     Console.WriteLine(dataRow["Instance"] as string); 
} 

然後進行檢查,如果所需的數據庫,可以用這樣的:

使用函數DB_ID返回數據庫的標識如果存在,否則爲空。示例T-SQL如下:

if (db_id('INVENTORY') is null) 
begin 
    return 0 
end 
else 
begin 
    return 1 
end 

希望這有助於。

+0

我已經在現有主題中看到過這個答案。這是一個較慢的過程,它在查詢服務器實例中佔用太多時間。實際上,在我的桌面應用程序場景中,我想測試每次當桌面應用程序啓動時實例是否正在運行以及數據庫是否已啓動。大部分時間(90%)的數據庫都會啓動。使用上述方法,查詢服務器實例需要一些額外的時間,這將使應用程序啓動速度變慢。 – Abdul 2012-07-16 14:20:45