如何从 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])
我有以下 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])