2012-01-02 3 views
0

MSSQLSERVER를 설치하기 전에 MSSQLSERVER가 이미 시스템에 설치되어 있는지 여부를 알고 싶습니다. 이것은 C++ 또는 mfc에서 프로그래밍 방식으로 수행해야합니다.MSSql Server가 Windows XP 또는 7에 설치되어 있는지 확인하는 방법?

MSSQLServer가 이미 Windows에 설치된 경우 해당 서버의 MSSQL 자격 증명을 가져올 수있는 방법이 있습니까?

그렇다면이 방법을 설명해주세요.

UPDATE 나는 내 시스템에 SQLSERVER 2005 및 SQL 서버 2008를 설치하려고하지만, 두 서버가 설치됩니다. 레지스트리 경로를 확인했지만 MSSQLServer 2005SOFTWARE\Microsoft\Microsoft SQL Server\90, MSSqlServer 2008SOFTWARE\Microsoft\Microsoft SQL Server\100이 포함되어 있습니다. 내 MSSQLServer를 설치하기 전에 MSSql Server 버전이 설치되어 있는지 여부를 어떻게 확인할 수 있습니까?

편집

지금까지 나는 침묵 C에서 프로그래밍 SQLSERVER ++를 설치했습니다.

나는 아래의 코드 게시 됨 :

SHELLEXECUTEINFO ShExecInfo; 
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); 
ShExecInfo.fMask = NULL; 
ShExecInfo.hwnd = NULL; 
ShExecInfo.lpVerb = NULL; 
ShExecInfo.lpFile = L"D:\\Softies\\SQLEXPR.EXE"; 
ShExecInfo.lpParameters = L"/qn addlocal=all InstanceName=SQLEXPRESS DisableNetworkProtocols=0 SECURITYMODE=SQL SAPWD=root SQLAUTOSTART=1 SQLBROWSERAUTOSTART=1 ENABLERANU=0"; 
ShExecInfo.lpDirectory = NULL; 
ShExecInfo.nShow = SW_MAXIMIZE; 
ShExecInfo.hInstApp = NULL; 

ShellExecuteEx(&ShExecInfo); 

int nResult=0; 
nResult = (int)ShExecInfo.hInstApp; 
if(nResult >32) 
cout<<"EXE executed successfully"<<endl; 
else 
cout<<"Reason for failure is" <<nResult<<endl; 
return 0; 

답변

1
  • 을 당신은

하지만

는 로컬 관리자 인 경우 무력의 제외하고, 서버의 자격 증명을 얻을 수 없다 - 시작 키 -f를 사용하여 명령 줄에서 SQL Server를 시작할 수 있으며 그걸 가지고 놀려고합니다. 넌 할 수있어.

  • 나는 SQL 서버 인스턴스에 대한 몇 가지 기본 설정을 확인하는 코드를 가지고, 그래서 쉽게 C++

    올렉 @
    private void GetSqlDefaultInfo(string ServerName, string InstanceName) 
    { 
    
        InstanceName = string.IsNullOrEmpty(InstanceName) ? "MSSQLSERVER" : InstanceName; 
    
        if (string.IsNullOrEmpty(ServerName)) 
         ServerName = Environment.MachineName; 
        using (var registryKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, ServerName)) 
        { 
         object sqlInstance; 
         using (var subKey = registryKey.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL")) 
          sqlInstance = subKey.GetValue(InstanceName); 
         if (sqlInstance != null && !string.IsNullOrEmpty(sqlInstance.ToString())) 
         { 
          var sqlPathKey = string.Format(@"SOFTWARE\Microsoft\Microsoft SQL Server\{0}\MSSQLServer", 
                  sqlInstance); 
          object defaultData, defaultLog, backupDirectory, sqlPath; 
          using (var subKey = registryKey.OpenSubKey(sqlPathKey)) 
          { 
           defaultData = subKey.GetValue("DefaultData"); 
           defaultLog = subKey.GetValue("DefaultLog"); 
           backupDirectory = subKey.GetValue("BackupDirectory"); 
          } 
          sqlPathKey = string.Format(@"SOFTWARE\Microsoft\Microsoft SQL Server\{0}\Setup", sqlInstance); 
    
          using (var subKey = registryKey.OpenSubKey(sqlPathKey)) 
           sqlPath = subKey.GetValue("SQLDataRoot"); 
          DataFilePath = defaultData != null 
               ? defaultData.ToString() 
               : Path.Combine(sqlPath.ToString(), "Data").TrimEnd('\\'); 
    
          LogFilePath = defaultLog != null 
               ? defaultLog.ToString() 
               : Path.Combine(sqlPath.ToString(), "Data").TrimEnd('\\'); 
          FTSIndexFilePath = DataFilePath; 
          ContentFilePath = DataFilePath; 
          BackupFilePath = backupDirectory != null 
               ? backupDirectory.ToString() 
               : Path.Combine(sqlPath.ToString(), "Backup").TrimEnd('\\'); 
         } 
        } 
    } 
    
+0

/여러분의 필요에 채택 될 수있다 : 나는 설치하려고 SQLSERVER 2005 및 SQL Server 2008 내 시스템에 있지만 두 서버가 설치되어 있습니다. 내가 레지스트리 경로를 확인하지만 SQL 서버 2005 년 SOFTWARE \ 마이크로 소프트 \ 마이크로 소프트 SQL 서버 \ 90 및 SOFTWARE \ 마이크로 소프트 \ 마이크로 소프트 SQL 서버 \ 100 SqlServer 2008.How SQL Server 버전이 설치되어 있는지 여부를 확인할 수 있습니까? – karthik

+0

@ Oleg : 확실하게 보려면 내 질문에서 업데이트 부분을 확인하십시오. – karthik

+0

@karthik @karthik 90 또는 100 (버전이 아닌 인스턴스)을 확인할 필요가 없습니다. - MSSQLSERVER (또는 MSSQL10_50.MSSQLSERVER - 버전에 따라 다름) - 기본 인스턴스의 경우 또는 \ InstanceName 인스턴스의 InstanceName을 확인해야합니다. SQLEXPRESS 인스턴스를 설정하면 확인할 레지스트리 키는 SOFTWARE \ Microsoft \ Microsoft SQL Server \ SQLEXPRESS입니다. –

관련 문제