Heute stellte sich mir die Aufgabe eine simple Stored Procedures zu schreiben, die x Datensätze aus einer Tabelle liest. Kein Paging sondern wirklich nur eine ganz bestimmte Anzahl - halt die TOP x Datensätze.
Also habe ich folgende SP geschrieben:
CREATE PROCEDURE dbo.Get_Top
@topCount int
AS
SELECT TOP @topCount
id, col1, col2, col3
FROM TestTable
Leider wurde mir dabei immer ein Syntaxfehler ausgeworfen - die Nutzung von dem Parameter innerhalb vom SQL-Statement scheint dem SQL-Server 2005 nicht zu schmecken. Also erst mal etwas gegooglet.... und zum guten Schluß stelle sich raus das die Lösung so einfach ist - aber darauf kommt man wohl zunächst nicht. Es reicht aus um das @topCount einfach eine Klammer zu setzen und schon kann der SQL-Server die SP verarbeiten.
Die lauffähige Stored Procedures für den SQL-Server sieht dann so aus:
CREATE PROCEDURE dbo.Get_Top
@topCount int
AS
SELECT TOP (@topCount)
id, col1, col2, col3
FROM TestTable
Darauf muss man erst mal kommen 