如何从 Slick 中的最后一个 SQL 语句中获取结果

How to get result from last SQL statement in Slick

我有以下 Scala 代码:

db.run(sql"""
  DECLARE @Ids TABLE (ID INT NOT NULL, UNIQUE CLUSTERED (ID));
  INSERT INTO @Ids VALUES ...;
  SELECT A.* FROM SomeTable AS A
  INNER JOIN @Ids AS B ON A.ID = B.ID
""".as[Dto])

在这种情况下,Slick (3.2.1) returns INSERT 的结果(受影响的行数)。

如何从 SELECT 获取数据?

看起来 Slick 无法做到这一点,但另一种方法是禁用 sql 更新的输出:

db.run(sql"""
  SET NOCOUNT ON;
  DECLARE @Ids TABLE (ID INT NOT NULL, UNIQUE CLUSTERED (ID));
  INSERT INTO @Ids VALUES ...;
  SELECT A.* FROM SomeTable AS A
  INNER JOIN @Ids AS B ON A.ID = B.ID
  SET NOCOUNT OFF;
""".as[Dto])