侧边栏壁纸
  • 累计撰写 128 篇文章
  • 累计创建 13 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

【SQLSERVER】如何解决Navicat Premium连接sqlserver2019报错的问题

DarkAthena
2021-12-22 / 0 评论 / 2 点赞 / 1871 阅读 / 4137 字

一、前言

最近开始在CSDN上回答一些关于数据库的问题,发现sqlserver占比挺高,或许现在学校里教的就是这个数据库吧。但sqlserver有些语法和ORACLE不一样,有些sql得不到验证,我就打算自己装个sqlserver的docker测试一下,可是当我使用navicat去连接sqlserver时,报错了

[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

二、网上的方案

网上很容易搜到这个问题的答案,就是进入navicat的安装目录,找到sqlncli_x64.msi,安装即可。

但是!
按照那些教程安装后,你会发现,报错变成了这样
image.png

三、初步分析

首先我确保了前面的配置没有填错,sqlserver的服务器地址和ip是用逗号分隔的
image.png

然后我注意到了安装navicat自带的sqlncli_x64.msi时,上面显示的是"SQL Server 2008 Native Client"
image.png

莫非是版本问题?于是我去找了下sqlserver的驱动,msodbcsql.msi这个包是odbc的,结果安装上去没识别出来。
由于当时只是要验证一个sql,我就先在网上找了个在线数据库的网站测了,然后之后又忙着做其他事,忘了。

然后今天2021-12-22,我发现CSDN有人在问这个问题,也是navicat连不上sqlserver,然后下面一堆回复说自己也连不上。我意识到这个问题可能的确没人给出最新版的解决方案,所以就花了点时间研究。

四、正式分析

首先我以关键字"SQL Server Native Client"在bing上搜索,得到
image.pngimage.png
结合上面两个内容,基本可以确定,11版本的客户端应该是可以连接sqlserve2019的,而且我前面的报错是10版本的客户端报出来的,那么现在的问题就是,去哪下这个11版本的客户端,或者是不是有更新的客户端。
根据上面一张图的页面里,得到一个这样的链接
https://docs.microsoft.com/en-us/sql/relational-databases/native-client/applications/support-policies-for-sql-server-native-client?view=sql-server-ver15
打开,一路看下去,相关内容
image.png
点进去第一个(这篇文章竟然是2021年9月22号的)
image.png
这里说的是SQLSERVER2016版本自带客户端,但我肯定不会去下那个庞然大物。点"see SQL Server Native Client"进去,会告诉你不要用这玩意了,建议改用OLE DB的
image.png
但是如果去下载安装OLE DB版本的,你会发现NAVICAT里识别不出来。

所以回到上一页,看这句

You can also get sqlncli.msi from the SQL Server 2012 Feature Pack web page. To download the most recent version of the SQL Server Native Client, go to Microsoft® SQL Server® 2012 Feature Pack.

最新版本的客户端在sqlserver2012里面,点击链接进去,点download,选择体积大一点的这个sqlncli.msi下载
image.png
安装好后,在navicat的连接编辑页面中,出现了11版本的驱动
image.png
选择它,然后测试
image.png

完美解决,如果有弹幕,此时应该满屏的氢氧根离子了吧 ohohohohohohoh~

2
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论