230 messaggi dal 27 aprile 2009
ciao a tutti ho questa query

SELECT TOP 3 *
FROM
tbl_Test_Domanda

e Vorrei riuscire a:

1.Parametrizzare il valore TOP per rendere dinamico il numero dei record che voglio visualizzare

2. Creare un store Procedure dinamica che mi aggiunga delle UNION a seconda del valore che gli passo

SELECT TOP 3 *
FROM
tbl_Test_Domanda
UNION
SELECT TOP 5 *
FROM
tbl_Test_Domanda

Qualche Idea?
salve Stefano,

Stefano_VR wrote:
ciao a tutti ho questa query

SELECT TOP 3 *
FROM
tbl_Test_Domanda

e Vorrei riuscire a:

1.Parametrizzare il valore TOP per rendere dinamico il numero dei record che voglio visualizzare

precedentemente a SQL Server 2005, purtroppo, il TOP x e' un costrutto che richiede un valore costante e non una variabile, come invece avviene ora.. puoi pero' utilizzare ROWCOUNT, quindi
SET ROCOUNT @numRighe;
SELECT ... FROM ... WHERE ...;
SET ROCOUNT 0;
per reimpostare correttamente il rowcount..

2. Creare un store Procedure dinamica che mi aggiunga delle UNION a seconda del valore che gli passo

SELECT TOP 3 *
FROM
tbl_Test_Domanda
UNION
SELECT TOP 5 *
FROM
tbl_Test_Domanda

questa non l'ho capita completamente.. ma penso che purtroppo devi passara ad una costruzione dinamica dell'intero comando ed eseguirlo via EXEC o sp_executesql, vedi quindi http://www.sommarskog.se/dynamic_sql.html, il bellissimo articolo di Erland Sommarskog a questo proposito.. saluti

Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
http://www.hotelsole.com - http://www.hotelsolericcione.de

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
In primo piano

I più letti di oggi

Media
In evidenza
MISC