T-SQL - SELECT TOP durch einen Parameter beinflussen

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 ;-)

Kommentare (1) -

Raimund
25.06.2008 09:46:22 #

hallo Daniel,
danke für diese sehr einfach und klare Erläuterung, wie man den Punkt lösen kann.
gruß
Raimund

*habs auch gleich ausprobiert.

Kommentar schreiben