首页 > 解决方案 > 如何从 Slick 中的最后一条 SQL 语句中获取结果

问题描述

我有以下 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) 返回INSERT(受影响的行数)的结果。

如何从中获取数据SELECT

标签: sqlsql-serverscalaslick

解决方案


看起来 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])

推荐阅读