goo*_*ate 12 sql-server-express sql-server-2008
我正在安装一些软件,我需要告诉它使用SQL Server的默认实例,但是Installshield GUI坚持要输入命名实例的信息.
目标SQL Server是版本2008R2
我希望有一个干净的黑客,我可以使用,如"." 或"默认",但我还没有猜到.我也尝试过MSSQLSERVER,但这也没用.
运行此查询:
SELECT @@SERVERNAME + '\' + @@SERVICENAME AS InstanceName
Run Code Online (Sandbox Code Playgroud)
并将结果用作实例名称.
所有 SQL Server 实例都存储在Windows 注册表中。您可以使用 Windows 工具查询注册表C:\Windows\System32\Regedt32.exe并在那里浏览/搜索,您可以使用C#(请参阅此处的示例 1)甚至 T-SQL(也称为 Transact-SQL)等语言来完成此操作。
在这个答案中,我将向您展示如何使用T-SQL来做到这一点。使用我在此处找到的此脚本来确定 ServerName、InstanceName、HostName 和 PortNumber:
set nocount on
Declare @key Varchar(100), @PortNumber varchar(20)
if charindex('\',CONVERT(char(20), SERVERPROPERTY('servername')),0) <>0 begin
set @key = 'SOFTWARE\MICROSOFT\Microsoft SQL Server\'+@@servicename+'\MSSQLServer\Supersocketnetlib\TCP'
end else begin
set @key = 'SOFTWARE\MICROSOFT\MSSQLServer\MSSQLServer\Supersocketnetlib\TCP'
end
EXEC master..xp_regread @rootkey = 'HKEY_LOCAL_MACHINE', @key = @key,
@value_name = 'Tcpport', @value = @PortNumber OUTPUT
SELECT CONVERT(char(20), SERVERPROPERTY('servername')) ServerName,
CONVERT(char(20), SERVERPROPERTY('InstanceName')) InstanceName,
CONVERT(char(20), SERVERPROPERTY('MachineName')) as HostName,
convert(varchar(10), @PortNumber) PortNumber
Run Code Online (Sandbox Code Playgroud)
如果InstanceNameis null,则意味着没有配置命名实例,那么您有两个非独占选项:
ServerName访问默认实例
Inst1将为本地 SQL 服务器
设置别名。指定(local)\Inst1,1433访问它。当然,(local)你也可以使用ServerName来代替。注意:如果开始菜单中没有 SQL Server 配置管理器,则可以在 C:\Windows\System32 中找到它。查找SqlServerManagerXX.msc(其中XX 是SQL 版本,例如XX=11 或XX=13)。
| 归档时间: |
|
| 查看次数: |
35829 次 |
| 最近记录: |