我正在尝试使用SQL表来实现一个先进先出(FIFO)队列。
我有以下的SQL代码(为了发布做了修改),连接和参数的使用对于这个过程的工作方式非常重要。
运行这个语句会返回一个错误:“视图或函数 'cte' 无法更新,因为修改会影响多个基本表。”
我理解为什么会出现这个错误,但我无法弄清楚如何修复它。任何建议将不胜感激!
我有以下的SQL代码(为了发布做了修改),连接和参数的使用对于这个过程的工作方式非常重要。
With cte as (
select top(1) q.* from queue q with (readpast)
inner join MyTable a on q.id = a.myTableID AND myTable.procID = @myParam
order by q.Data asc
)
delete from cte
output
deleted.ID,
deleted.col1
运行这个语句会返回一个错误:“视图或函数 'cte' 无法更新,因为修改会影响多个基本表。”
我理解为什么会出现这个错误,但我无法弄清楚如何修复它。任何建议将不胜感激!