如何通过注册表全局强制配置SSMS 18.0的指定参数?
在SSMS 18.0中通过注册表全局强制配置查询相关设置
这个需求完全可行且可落地,SSMS 18.0的用户配置确实存储在注册表中,之前修改未生效大概率是路径找错或未重启SSMS。以下是针对你需求的具体操作步骤:
核心前提
SSMS 18.0的用户级配置注册表根路径为:HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio\18.0_Config
若要全局应用到所有用户,需修改HKEY_LOCAL_MACHINE下对应路径(需管理员权限,且仅对首次启动SSMS的用户生效)。
各设置的具体注册表配置
1. 启用SET_NOCOUNT(Query Execution > SQL Server > Advanced)
- 注册表路径:
HKCU:\Software\Microsoft\SQL Server Management Studio\18.0_Config\Tools\Options\Query Execution\SQL Server\Advanced - 创建/修改DWORD类型键值:
SET_NOCOUNT - 值设置:
1(勾选状态),0为取消勾选
2. 禁用SET ANSI_NULLS(Query Execution > SQL Server > ANSI)
- 注册表路径:
HKCU:\Software\Microsoft\SQL Server Management Studio\18.0_Config\Tools\Options\Query Execution\SQL Server\ANSI - 创建/修改DWORD类型键值:
SET_ANSI_NULLS - 值设置:
0(取消勾选状态),1为勾选
3. 设置默认结果输出为文本(Query Results > SQL Server > General)
- 注册表路径:
HKCU:\Software\Microsoft\SQL Server Management Studio\18.0_Config\Tools\Options\Query Results\SQL Server\General - 创建/修改DWORD类型键值:
DefaultResultsDestination - 值对应关系:
0= 结果到网格1= 结果到文本2= 结果到文件
- 此处设置为
1
生效步骤
修改完成后必须完全关闭并重启SSMS,新设置才会生效。
批量配置脚本(PowerShell)
如果需要批量部署,可使用以下PowerShell命令(需以普通用户身份执行,对应HKCU路径):
# 配置SET_NOCOUNT为启用 Set-ItemProperty -Path "HKCU:\Software\Microsoft\SQL Server Management Studio\18.0_Config\Tools\Options\Query Execution\SQL Server\Advanced" -Name "SET_NOCOUNT" -Value 1 -Type DWord # 配置SET ANSI_NULLS为禁用 Set-ItemProperty -Path "HKCU:\Software\Microsoft\SQL Server Management Studio\18.0_Config\Tools\Options\Query Execution\SQL Server\ANSI" -Name "SET_ANSI_NULLS" -Value 0 -Type DWord # 配置默认结果输出为文本 Set-ItemProperty -Path "HKCU:\Software\Microsoft\SQL Server Management Studio\18.0_Config\Tools\Options\Query Results\SQL Server\General" -Name "DefaultResultsDestination" -Value 1 -Type DWord
注意事项
- 内部更新通常不会重置注册表中的这些配置项,比导入/导出设置更稳定(导入/导出的配置存储在
%APPDATA%\Microsoft\SQL Server Management Studio\18.0,可能被更新覆盖) - 若修改HKLM路径,需确保用户有读取该注册表项的权限,且仅在用户首次启动SSMS时会读取此默认配置
内容的提问来源于stack exchange,提问作者MineTurtle
相关产品推荐
相关产品推荐

