我正在尝试为Microsoft SQL Server的LocalDB设置别名,但每次我的命名实例实例化时,用于将我创建的别名链接到LocalDB实例的命名管道都会更改。有没有办法为LocalDB的实例设置永久别名?
例如,我从名为“MSSQLLocalDB”的命令行创建了一个LocalDB实例。
sqllocaldb create mssqllocaldb
然后我们开始并询问信息。
sqllocaldb start mssqllocaldb
sqllocaldb info mssqllocaldb
Name: mssqllocaldb
Version: 11.0.2318.0
Shared name:
Owner: COOLNEATRADFOLDER\ryguy
Auto-create: No
State: Running
Last start time: 4/9/2018 3:46:16 PM
Instance pipe name: np:\\.\pipe\LOCALDB#4329652A3\tsql\query
使用Microsoft的计算机管理工具,我们可以创建一个别名:引用我们使用上一个命令获得的命名管道创建的LocalDB实例。
问题是每次创建数据库实例时都会重命名命名管道,并且似乎不支持TCIP。每次重新启动服务器时(在计算机重新加载,或超时或手动),都必须经过以同样的方式创建别名的繁琐的繁琐步骤。
我研究了使用PowerShell脚本以及这个有用链接的指导:
但这需要一些黑客攻击,解决方案有点儿错误(你必须直接搞乱注册表)。
是否有更简单的方法为LocalDB实例创建永久别名?
答案 0 :(得分:1)
这是我为MS SQL LocalDB实例创建永久别名的解决方案。我打电话给我的实例' mssqllocaldb'。 Thios解决方案适用于LocalDB 2012和2016.我正在使用SSMS 2017。
经过多次审核后,我得出的结论是,Microsoft不支持创建连接到LocalDB的永久别名。所以我编写了一个可以轻松运行的powershell脚本。我将它保存在桌面上并在我想要启动数据库时运行它。
第一段代码提升了powershell中的权限,以便此脚本可以破解注册表。
接下来,我们启动数据库并解析为此LocalDB实例创建的命名管道的JSON.parse(JSON.stringify(array))
命令。
最后,我们破解了注册表,将别名应用于64位和32位版本。
将文本文件保存为' whatever.ps1'用这个脚本。右键单击并选择' Run With Powershell'每次要启动数据库时。
arr1=['abcdwidets', 'nightly', ..., n];
arr2=[1628, 0378, 6144, ..., n];
我希望你发现这有用!如果我遗漏了任何信息或者您还有其他问题,请与我们联系。