小编Jas*_*son的帖子

IN语句与PRIMARY KEY不一致

因此,我有一个名为temp的简单表,可以通过以下方式创建:

CREATE TABLE temp (value int, id int not null primary key);
INSERT INTO temp
VALUES(0,1),
      (0,2),
      (0,3),
      (0,4),
      (1,5),
      (1,6),
      (1,7),
      (1,8);
Run Code Online (Sandbox Code Playgroud)

我有第二个表temp2可以通过以下方式创建:

CREATE TABLE temp (value int, id int);
INSERT INTO temp
VALUES(0,1),
      (0,2),
      (0,3),
      (0,4),
      (1,5),
      (1,6),
      (1,7),
      (1,8);
Run Code Online (Sandbox Code Playgroud)

temp和temp2之间的唯一区别是id字段是temp中的主键,而temp2没有主键。我不确定如何,但是通过以下查询得到的结果却有所不同:

select * from temp
where id in (
    select id
    from (
        select id, ROW_NUMBER() over (partition by value order by value) rownum
        from temp
    ) s1
    where rownum = 1
)
Run Code Online (Sandbox Code Playgroud)

这是temp的结果:

value       id
----------- ----------- …
Run Code Online (Sandbox Code Playgroud)

sql-server primary-key sql-server-2008

6
推荐指数
1
解决办法
52
查看次数

将 SQL 脚本与数据库关联

我一直在使用 DBeaver 作为 SQL Server Management Studio 的替代品,我很喜欢它。我唯一无法弄清楚的是如何将脚本与数据库相关联。例如,在 SSMS 中,我可以在对象资源管理器中右键单击一个数据库(我们称之为 A),然后单击“新建查询”(或 ctrl+n)以打开在数据库 A 中处于活动状态的脚本。如果我在一个不同的数据库 (B),该脚本与数据库 B 相关联。当我切换回原始脚本时,我将重新使用数据库 A,而无需从数据库列表中手动选择或执行USE语句。显然,切换回第二个脚本将使数据库 B 再次处于活动状态。

不幸的是,在 DBeaver 中,所有脚本似乎只有一个活动数据库。有没有办法在 DBeaver 中设置它以这种方式像 SSMS 一样工作?

编辑:DBeaver 将单个数据库称为目录/模式。这就是我试图与单个脚本相关联的内容。

sql dbeaver

6
推荐指数
2
解决办法
1874
查看次数

标签 统计

dbeaver ×1

primary-key ×1

sql ×1

sql-server ×1

sql-server-2008 ×1