解决 DataGrip Query Console 不管选择哪个 schema,始终在 master 下执行
DataGrip 是我目前用过的最好的数据库 IDE。在 ARM Mac 上通过 Docker 安装好 SQL Server 后,我立马尝试在 DataGrip 中访问,由于新系统,所以安装的是最新版本的 DataGrip,本以为新版本应该体验更好,但却发现了一个标题所说的致命问题。
该问题会导致我执行的 SQL 始终提示 Invalid object name 'table_name'
,这个提示很容易理解,因为在 master 下该表是不存在的。
问题复现步骤
选中数据库。
右键选择“Query Console”。
编辑界面对应的当前 schema 显示正常,为当前数据库名称。
编写查询语句,智能提示显示正常,但是执行报错,Output 输出如下:
1
2
3
4[2022-04-21 21:08:44] Connected
master> select *
from OrderInfo
[2022-04-21 21:08:44] [S0002][208] Line 1: Invalid object name 'OrderInfo'.奇怪的是 schema 怎么显示的 master,而不是当前数据库。
并且点击 Switch current schema,显示
nothing to show
。
解决
感觉这是 DataGrip 的问题。因为我当时的使用的版本是 2022.1.1,发布日期是 2022-4-14,至今 7 天。
于是在另一台电脑上用另一个版本 2021.3.1,发布日期是 2021-11-24,测试没有问题。果然问题就是最新版本的 DataGrip 的 bug 了。
schema 列表像下图这样能显示就正常了。
解决 DataGrip Query Console 不管选择哪个 schema,始终在 master 下执行