Sql offset与临时表和Rows命令一起工作吗

Sql offset与临时表和Rows命令一起工作吗,sql,sql-server,Sql,Sql Server,我本想在sql server 2014及更高版本中使用新行和偏移量,但它似乎不允许我使用临时表 我将另一个查询加入到这个查询中,并将它们插入到临时表中。我之所以想使用offset命令是为了分页,但我想它不适用于临时表 select st.StocktakeID, bi.BinName, si.ItemID as StockItemID, si.Code, si.Name,

我本想在sql server 2014及更高版本中使用新行和偏移量,但它似乎不允许我使用临时表

我将另一个查询加入到这个查询中,并将它们插入到临时表中。我之所以想使用offset命令是为了分页,但我想它不适用于临时表

select st.StocktakeID, 
              bi.BinName, 
              si.ItemID as StockItemID, 
              si.Code, 
              si.Name, 
              si.Barcode, 
              si.StockUnitName,
              scsi.StocktakeCountShtItemID, 
              scsi.RecordedQuantityInStock,
              scsi.ActualQuantityEntered,
              scsi.ActualQuantityInStock
into #StockTakeItems
from #StockTakes st
join StocktakeCountSheetItem scsi on st.StocktakeID = scsi.StocktakeID
join BinItem bi on scsi.BinItemID = bi.BinItemID
join StockItem si on bi.ItemID = si.ItemID


select * from #StockTakeItems sti 
OFFSET @start Rows  
Fetch NEXT 10 ROWS ONLY 

end
GO
我发现了错误

预期行附近的语法不正确

但我在生产服务器上使用2014,在测试服务器上使用2017,这应该在2017年起作用,否则他们会将其删除


在SQL server中使用offset和fetch时,您需要根据我的假设添加订单。我认为这应该行得通

select st.StocktakeID, 
              bi.BinName, 
              si.ItemID as StockItemID, 
              si.Code, 
              si.Name, 
              si.Barcode, 
              si.StockUnitName,
              scsi.StocktakeCountShtItemID, 
              scsi.RecordedQuantityInStock,
              scsi.ActualQuantityEntered,
              scsi.ActualQuantityInStock
into #StockTakeItems
from #StockTakes st
join StocktakeCountSheetItem scsi on st.StocktakeID = scsi.StocktakeID
join BinItem bi on scsi.BinItemID = bi.BinItemID
join StockItem si on bi.ItemID = si.ItemID


select * from #StockTakeItems sti 
order  by StocktakeID
OFFSET @start Rows  
Fetch NEXT 10 ROWS ONLY
您也可以检查此链接: