検討:SQL Serverのインスタンス名をどのように調べて取得しますか?


一、表示例名rは使用可能です。
1、サービス――SQL Server(実例名)、デフォルトの例は(MSSQLSERVER)です。
または企業管理に接続するとき-ローカルインスタンスを表示します。
2、通^注員HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/Installed Instance
3、コマンドでsqlcmd/osqlsqlcmd-Lsqlcmd-Lcoql-L
利用可能な例を取得すると、以下のeの一例では、根自情r改

DECLARE @Table TABLE ( instanceName  sysname NULL)

insert @Table EXEC sys.xp_cmdshell 'sqlcmd -Lc'

--LEFT(@@serverName,CHARINDEX('/',@@serverName+'/')-1) C , t

SELECT * FROM @Table WHERE instanceName LIKE   LEFT( @@serverName , CHARINDEX ( '/' , @@serverName + '/' )- 1)+ '%'

二、
--1.SELECT SERVERRPROPERTY('Instance Name')
--2 sp_helpsperver
--3 select@@SERVERNAME
--4 SELECT*FROM SYSS.SYSERVRS
--5 SELECT*FROM SYSS.SERVRS
三、
EXECUTE xp_regread@rootkey='HKEY_LOCAL_MACHINE',@key='SOFTWARE/Microsoft/Microsoft SQL Server/Instance Names/SQl',@value_name='MSSQLSERVER'
四、
Select CaseWhen SERVERRPROPERT('Instance Name')Is Null The n@SERVERNAMEElse SERVERRPROPERTY('Instance Name')End
五、ローカルまたはネットワークですべてのインスタンス名を取得する
1、You can do with registry reading、like my code

using System;
using Microsoft.Win32;

namespace SMOTest
{
    class Program
    {
      static void Main()
      {
        RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"SOFTWARE/Microsoft/Microsoft SQL Server");
        String[] instances = (String[])rk.GetValue("InstalledInstances");
        if (instances.Length > 0)
        {
           foreach (String element in instances)
           {
              if (element == "MSSQLSERVER")
                 Console.WriteLine(System.Environment.MachineName);
              else
                 Console.WriteLine(System.Environment.MachineName + @"/" + element);
           }
        }
      }
    }
}

2、You can use SQLDMO.dll to retrieve the list of SQL Server instancs.  The SQLDMO.dll can be found from the「C:/Program Files/Microsoft SQL Server/80/Tools/Bin」folder.Refer this asembly in your project the following snippet world return a List Object.com.com.com