尝试以编程方式将 SQL 别名添加到注册表

问题描述 投票:0回答:2

通常,当我们启动一个新实例时,我们需要在其中一个机器上添加别名,以便我们可以使用 SQL Server 配置管理器通过 SSMS 轻松连接到它。

我编写了一个批处理文件,它将适当的条目添加到注册表中(它实际上是两个批处理文件,一个用于 32 位,一个用于 64 位)。我不确定如何让它使用参数运行。我知道

%1
%2
将用于前两个参数,但是当我运行它时,在注册表中它实际上将
%1
%2
作为值对。

如果您硬编码主机名和 IP 地址来代替

%1
%2
,则批处理文件将按预期工作:

REGEDIT4

; @ECHO OFF
; CLS
; REGEDIT.EXE /S "%~f0"
; EXIT

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
"%1"="DBMSSOCN,%2,1433"
sql-server sql-server-2008 batch-file
2个回答
1
投票

作为替代方案,您可以(具有适当的权限)尝试使用 T-SQL 写入注册表:

USE [master]
GO

declare @p1 nvarchar(100)
declare @p2 nvarchar(100)

set @p1 = N'HostName'
set @p2 = N'DBMSSOCN,1.2.3.4,1433'

EXEC xp_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\Client\ConnectTo', @p1, REG_SZ, @p2
GO

0
投票

我知道这已经很旧了......但是, 要在批处理文件中传递参数,请使用 %%1、%%2 等

© www.soinside.com 2019 - 2024. All rights reserved.