Серверы можно получить через WMI (это если SMO не стоит):
class ServerInfo
{
public string Name
{
get;
set;
}
public string Accaunt
{
get;
set;
}
}
private static ServerInfo[] GetServers()
{
SelectQuery selQ = new SelectQuery("SELECT * FROM Win32_Service");
using (var src = new ManagementObjectSearcher(selQ))
{
Queue<ServerInfo> servers = new Queue<ServerInfo>(2);
foreach (ManagementObject obj in src.Get())
using (obj)
{
var serviceName = obj.GetPropertyValue("Name").ToString();
if (serviceName.ToString().StartsWith("MSSQL") && obj.GetPropertyValue("PathName").ToString().ToLower().Contains("sqlservr.exe"))
{
var accauntName = obj.GetPropertyValue("StartName").ToString();
servers.Enqueue(new ServerInfo { Name = serviceName, Accaunt = accauntName });
}
}
return servers.ToArray();
}
}
private static string TranslateServerName(string server)
{
int dollarPos = server.IndexOf('$');
if (dollarPos >= 0)
return String.Format("localhost\\{0}", server.Substring(dollarPos + 1));
else
return "localhost";
}
TranslateServerName преобразует имя в пригодное для строки подключения
Проверить и запустить можно тоже через WMI (готового примера кода нет)
Чтоб создать БД, набери в SQL Server Books Online "CREATE DATABASE". Books Online доступна на Microsot Download Center на русском
Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 10 May 2008 14:49
|