Numero di record di una tabella

giovedì 19 marzo 2009 - 12.34

4mane Profilo | Junior Member

Salve a tutti.
Sono un paio di giorni che sto cercando di estrarre il numero di record di una tabella, all'interno di una stored procedure, per poterlo memorizzare in una variabile, senza però riuscirci.
Mi spiego meglio: il nome della tabella mi viene passato come tipo nvarchar(100) e dovrei per tale tabella effetuare un semplice:
'SELECT COUNT(*) FROM ' + @NomeTabella
Sò che non è possibile parametrizzare la clausola FROM, e per questo ho utlizzato una EXEC del tipo:
EXEC('SELECT COUNT(*) FROM ' + @NomeTabella)
Tale funzione è ok, ma io avrei la necessità di far girare una cosa del genere:

DECLARE @TotRecords int SET @TotRecords = EXEC('SELECT COUNT(*) FROM ' + @NomeTabella)
Nella speranza di essermi spigato bene, chiedo a voi tutti se c'è una soluzione a tale problematica.
Grazie a tutti in anticipo!

alx_81 Profilo | Guru

>Salve a tutti.
Ciao

>Sono un paio di giorni che sto cercando di estrarre il numero
>di record di una tabella, all'interno di una stored procedure,
>per poterlo memorizzare in una variabile, senza però riuscirci.
Innanzitutto ti consiglio di usare la sp di sistema sp_executesql che serve per eseguire il codice sql dinamico.
per ricavare un parametro di output eccoti la sintassi:
-- @NomeTabella è definito da te DECLARE @SQLString NVARCHAR(500) DECLARE @ParmDefinition NVARCHAR(500) DECLARE @Count int SET @SQLString = N'SELECT @CountOUT = count(*) FROM ' + @NomeTabella SET @ParmDefinition = N'@CountOUT int OUTPUT' EXECUTE sp_executesql @SQLString,@ParmDefinition,@CountOUT=@Count OUTPUT SELECT @Count

eccoti la reference per la sp_executesql:
http://msdn.microsoft.com/it-it/library/ms188001.aspx

>Grazie a tutti in anticipo!
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

4mane Profilo | Junior Member

Che te lo dico a fa'..., che sei un G R A N D E!
Grazie 1000 davvero!
;)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5