検討:SQL Serverのインスタンス名をどのように調べて取得しますか?
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