Implementierung der Paginierung in der Arbeitsabfrage

Ich verbinde mich mit einem SQL SERVER 2012 mit 3 verknüpften servern. Ich benutze vorgefertigte Abfragen, um data abzurufen, aber die Person, die die Abfragen gemacht hat, hat keine Paginierung implementiert, die ich brauche, also versuche ich, diesen Featuer zu zwingen. Eine Sache zu bemerken ist, dass ich die Version der verknüpften server nicht kenne. Es ist vielleicht das erste Mal mit verknüpften servern, also bin ich nicht vertraut mit der Art, wie sie arbeiten, aber da auf meiner Maschine habe ich 2012 Version Ich habe versucht mit OFFSET und FETCH aber bekam erros für ungültiges Token. Dann wurde ich vorgeschlagen, die Syntax zu versuchen, die auf meinem lokalen SQL SERVER 2008R2 aber das kann ich auch nicht so machen, hier ist es. Zuerst der Code, der funktioniert:

 select * from openquery(linkedserver, ' select ORG.Id as ID, ORG.FirstName AS "FirstName", ORG.LastName as LastName from YMFK.LK99Z ORG left outer join YMFK.LK88Z Phone ON ORG.Number = Phone.Number AND Phone.Col = ''something'' AND Phone.Col = ''else'' inner join YMFK.L77Z ORL ON ORG.Id = ORL.Id where ORG.FirsName like ''%Peter%''' ) 

Sorry für die geänderten Namen, aber die Logik bleibt unberührt, also denke ich, dass es kein Problem sein wird.

Also dann versuche ich, sozusagen Paginierung zu machen:

 from (SELECT tbl.*, ROW_NUMBER() OVER(ORDER BY ID) AS rownum FROM YMFK.LK99Z as tbl WHERE ORG.FirstName like ''%Peter%'' ) ORG WHERE ORG.rownum BETWEEN 1 AND 10 

die ich an die Stelle from YMFK.LK99Z ORG und auch entfernen where ORG.FirsName like ''%Peter%''' . Dieser Code ist etwas, das ich versuchte, Form eine funktionierende Paginierungsabfrage zu machen, die es so wenig wie möglich modfying, aber die erste (ursprüngliche) Abfrage funktioniert, und die zweite (geänderte) Abfrage gibt mir Fehler

Column qualifier or table ORG undefined.".

in deinem Code:

 from (SELECT tbl.*, ROW_NUMBER() OVER(ORDER BY ID) AS rownum FROM YMFK.LK99Z as tbl WHERE ORG.FirstName like ''%Peter%'' ) ORG WHERE ORG.rownum BETWEEN 1 AND 10 

Der Alias ORG ist außerhalb des inneren Bereichs definiert.
versuchen Sie folgendes:

 from (SELECT tbl.*, ROW_NUMBER() OVER(ORDER BY ID) AS rownum FROM YMFK.LK99Z as tbl WHERE tbl.FirstName like ''%Peter%'' ) ORG WHERE ORG.rownum BETWEEN 1 AND 10