【发布时间】:2016-12-04 05:08:28
【问题描述】:
我有一个 Play/Slick 应用程序,我需要在单个事务中运行多个普通 sql 查询,检索最后一个查询的结果,如下所示:
val id: Future[Int] = db.run {
sql"""
DECLARE @T TABLE (id INTEGER)
INSERT INTO Foo (name) OUTPUT INSERTED.id INTO @T VALUES ('bar')
SELECT id FROM @T
""".as[Int].head
}
上面的问题是它总是返回1,这是声明临时表的顶级查询的结果。我如何获得最后一个查询的结果?有问题的数据库是 MS SQL Server。玩 2.5.4,Slick 3.1.1。
【问题讨论】:
-
将它们拆分为单独的操作并进行理解?然后添加
.transactionally? -
@insan-e 我正在尝试类似的方法,但无法弄清楚语法,根本没有示例。
-
是的,文档说了差不多 2 句话关于查询组合...
标签: sql-server scala jdbc playframework slick