全版本删除SQL Server连接过的服务器名称历史记录

当我们使用SQL Server Management Studio (SSMS) 连接到不同的服务器时,SSMS 会自动记录连接过的服务器名称,以便我们在下次连接时快速选择。然而,连接历史记录可能会变得混乱,其中可能包含我们不再使用的服务器名称。因此,我们可能需要删除历史记录中的一些服务器名称。

本文将介绍如何使用不同版本的SQL Server删除连接历史记录的方法,并提供相关的代码示例。

SQL Server 2012 及更早版本

在SQL Server 2012 及更早版本中,连接历史记录保存在注册表中。因此,我们可以通过删除相关的注册表项来删除历史记录。

以下是删除连接历史记录的代码示例:

```powershell
# 指定要删除历史记录的服务器名称
$serverName = "ServerName"

# 删除连接历史记录的注册表项
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Microsoft SQL Server\110\Tools\Shell\MRU" -Name "Server\$serverName"

请注意,上述代码示例中的`110`表示SQL Server 2012的版本号。如果您正在使用更早版本的SQL Server,请将代码中的版本号更改为相应的版本号。

## SQL Server 2014 及更新版本

从SQL Server 2014开始,连接历史记录保存在Visual Studio的配置文件中。因此,我们可以通过修改该配置文件来删除历史记录。

以下是删除连接历史记录的代码示例:

```markdown
```powershell
# 指定要删除历史记录的服务器名称
$serverName = "ServerName"

# 获取Visual Studio的配置文件路径
$vsConfigFile = Join-Path -Path $env:APPDATA -ChildPath "Microsoft\SQL Server Management Studio\12.0\SqlStudio.bin"

# 读取配置文件
$vsConfig = [xml](Get-Content $vsConfigFile)

# 查找要删除的服务器名称并删除
$vsConfig.DocumentElement.Server.ConnectionMRU | Where-Object { $_.Name -eq $serverName } | ForEach-Object { $vsConfig.DocumentElement.Server.ConnectionMRU.RemoveChild($_) }

# 保存修改后的配置文件
$vsConfig.Save($vsConfigFile)

请注意,上述代码示例中的`12.0`表示SQL Server 2014的版本号。如果您正在使用更新的版本,请将代码中的版本号更改为相应的版本号。

## 总结

通过删除SQL Server连接历史记录,我们可以清理不再使用的服务器名称,以提高连接服务器的效率。本文介绍了在SQL Server 2012及更早版本以及SQL Server 2014及更新版本中删除连接历史记录的方法,并提供了相应的代码示例。希望这篇文章对您有所帮助!

## 参考资料

- [Remove SQL Server Management Studio's server history](
- [Removing Server Names from SQL Server Management Studio](