Bạn đã có một số cách để làm điều đó:
- SmoApplication.EnumAvailableSqlServers()
- SqlDataSourceEnumerator.Instance
- Truy cập trực tiếp vào hệ thống reg istry
Truy cập trực tiếp không phải là giải pháp được đề xuất bởi MS, vì chúng có thể thay đổi khóa/đường dẫn. Nhưng các giải pháp khác không mạnh mẽ và không cung cấp các phiên bản trên nền tảng 64 bit.
Vì vậy, tôi muốn kiểm tra các phiên bản SQL Server trong System Registry. Làm như vậy, hãy ghi nhớ sự khác biệt trong Truy cập đăng ký giữa các nền tảng x86 và x64. Windows 64 bit lưu trữ dữ liệu trong các phần khác nhau của hệ thống đăng ký và kết hợp chúng thành các khung nhìn. Vì vậy, việc sử dụng RegistryView là điều cần thiết.
using Microsoft.Win32;
RegistryView registryView = Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32;
using (RegistryKey hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, registryView))
{
RegistryKey instanceKey = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL", false);
if (instanceKey != null)
{
foreach (var instanceName in instanceKey.GetValueNames())
{
Console.WriteLine(Environment.MachineName + @"\" + instanceName);
}
}
}
Nếu bạn đang tìm kiếm trường 32-bit trên một hệ điều hành 64-bit (khá lạ, nhưng có thể), bạn sẽ cần phải xem xét:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server
Nguồn
2013-02-26 00:03:27
Cùng câu hỏi: http: // stackoverflow .com/questions/2381055/check-if-sql-server-any-version-được cài đặt –
oh xin lỗi. Cảm ơn ! – Shrayas