내 컴퓨터에 설치된 SQL Server의 모든 인스턴스를 반환해야하는 코드 조각이 있습니다. 다음과 같이 표시됩니다.내 메서드가 유효한 SQL Server 인스턴스를 반환하지 않는 이유는 무엇입니까?
DataTable dtLocalServers = SmoApplication.EnumAvailableSqlServers(true);
foreach (DataRow dServer in dtLocalServers.Rows)
{
Console.WriteLine(dServer.ToString());
}
작동하며 컴파일하고 실행합니다. 결과 데이터 테이블은 그다지 유용하지 않습니다.
Name | Server | Instance | IsClustered | Version | IsLocal
IAN-PC | IAN-PC | | True | | True
결과가 반환되지만 서버에 대한 정보가 전혀 나오지 않는 것이 문제입니다. 특히 '버전'필드에 있어야한다고 가정하는 버전 (SQL Server 2008 Express R2 또는 SQL Server Express 2012)을 얻으려고합니다. 이 테스트를 위해 로컬에서 실행되는 두 개의 복사본이 있다는 사실을 알고 있습니다.
더 나은 결과를 얻으려는 다른 방법이 있습니까?
EDIT : IAN-PC는 내 컴퓨터의 이름입니다. 내 컴퓨터에는 SQL Server의 두 인스턴스 인 IANSQLEXP (SQL Server 2008 Express R2)와 SQLEXPRESS (SQL Server Express 2012)가 있습니다. SQL Server 구성 관리자에는 실행 중이 지 않은 에이전트와 실행되고 있지 않은 SQL Server 브라우저가 있습니다.
테이블의 버전은 '버전'입니다. 서버가 클러스터 된 경우 버전을 반환하지 않습니다. – Romoku
그 부분을 이해합니다. 서버를 점검 할 다른 방법이 있습니까? 우리는 클라이언트의 컴퓨터에 서비스를 배치하려고합니다. 따라서 클러스터가 클러스터되어 있는지 여부를 제어 할 수 없으며 설치되는 내용을 확인하려고합니다. 그건 바보 같은 질문 일 수도 있습니다. SQL Server의 작동 방식에 익숙하지 않습니다. – ijb109
클러스터 된 인스턴스가 명명 된 인스턴스입니까? –