探讨:如何查看和获取SQL Server实例名

时间:2024-01-18 03:47:42 

一、查看實例名時可用

1、服务—SQL Server(实例名),默认实例为(MSSQLSERVER)

或在连接企业管理时-查看本地实例

2、通過注冊表
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/InstalledInstance

3、用命令
sqlcmd/osql
sqlcmd -L
sqlcmd -Lc
osql -L

获取可用實例,以下舉一個例子,根據自己情況改


DECLARE @Table TABLE ( instanceName  sysname NULL)

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

--LEFT(@@serverName,CHARINDEX('/',@@serverName+'/')-1) 替代為本機名就行了 , 根據實例命名規則判斷

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

二、

--1.
SELECT SERVERPROPERTY('InstanceName')

--2
sp_helpserver

--3
select @@SERVERNAME

--4
SELECT * FROM SYS.SYSSERVERS

--5
SELECT * FROM SYS.SERVERS

三、

EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE/Microsoft/Microsoft SQL Server/Instance Names/SQl',
@value_name='MSSQLSERVER'

四、

Select Case
When SERVERPROPERTY ('InstanceName') Is Null Then @@SERVERNAME
Else SERVERPROPERTY ('InstanceName')
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 instances.  The SQLDMO.dll can be found from the "C:/Program Files/Microsoft SQL Server/80/Tools/Bin" folder. Refer this assembly in your project and the following snippet would return a List Object containing the sql server instances.


public static List GetSQLServerInstances()
{
NameList sqlNameList = null;
Application app = null;


var sqlServers = new List();
try
{
app = new ApplicationClass();
sqlNameList = app.ListAvailableSQLServers();
foreach (string sqlServer in sqlNameList)
sqlServers.Add(sqlServer);
}
catch(Exception ex)
{
//play with the exception.
}
finally
{
if (sqlNameList != null)
sqlNameList = null;
if (app != null)
app = null;
}
return sqlServers;
}

 

标签:查看,获取,SQLServer实例名
0
投稿

猜你喜欢

  • Python3 使用selenium插件爬取苏宁商家联系电话

    2023-12-20 01:39:57
  • 交互设计师的尴尬-我的强项是什么?

    2008-12-29 14:00:00
  • 让Entity Framework支持MySql数据库

    2010-12-14 15:22:00
  • Python基于回溯法子集树模板解决0-1背包问题实例

    2021-02-02 08:57:54
  • javascript同步服务器时间和同步倒计时小技巧

    2023-08-27 22:10:58
  • 你需要学会的8个Python列表技巧

    2023-11-19 09:36:21
  • 水晶报表 分页 的问题

    2022-11-08 05:53:30
  • python 中文编码乱码问题的解决

    2021-03-06 16:43:58
  • go类型转换及与C的类型转换方式

    2024-04-28 09:18:38
  • Pytorch1.5.1版本安装的方法步骤

    2021-02-07 00:57:09
  • python使用cv2库、下载opencv库的方法

    2022-09-05 00:45:09
  • 浅谈Python用QQ邮箱发送邮件时授权码的问题

    2021-10-30 13:06:59
  • 如何调用Oracle存储过程?

    2009-11-15 20:13:00
  • CSS Sprites (CSS图像拼合技术)教程工具

    2009-05-26 15:30:00
  • Python使用新浪微博API发送微博的例子

    2023-12-22 08:43:45
  • 使用requests库制作Python爬虫

    2023-08-17 21:43:23
  • Python使用dict.fromkeys()快速生成一个字典示例

    2022-05-10 08:13:23
  • asp动态调用不同include文件方法

    2007-09-26 14:22:00
  • php 静态页面中显示动态内容

    2023-11-18 22:09:22
  • SQL Server误区30日谈 第13天 在SQL Server 2000兼容模式下不能使用DMV

    2024-01-13 18:34:25
  • asp之家 网络编程 m.aspxhome.com