Parametro para el SELECT TOP

19/02/2004 - 19:11 por Joaquin Pelayo | Informe spam
Hola.

Tengo la siguiente duda (problema) he creado el procedimiento adjunto,
definiendo un parametro que me permita pasar el numero que registros que
quiero retornar, pero me dice que la sintaxis es incorrecta, por mas que lo
miro no encuentro el error, ¿no se puede hacer? ¿cual es la forma correcta?

Create_procedure dbo.Inmuebles
(
@numregistros integer
)
as
Select top @numregistros * from Inmuebles
go

Un saludo.

Joaquin Pelayo

Preguntas similare

Leer las respuestas

#1 ulises
19/02/2004 - 19:28 | Informe spam
La clausula TOP no acepta como parametro una variable,
pero puedes usar ROWCOUNT para simularlo, algo como :

set rowcount @numregistros
Select * from Inmuebles
set rowcount 0

Saludos,
Ulises

Hola.

Tengo la siguiente duda (problema) he creado el


procedimiento adjunto,
definiendo un parametro que me permita pasar el numero


que registros que
quiero retornar, pero me dice que la sintaxis es


incorrecta, por mas que lo
miro no encuentro el error, ¿no se puede hacer? ¿cual es


la forma correcta?

Create_procedure dbo.Inmuebles
(
@numregistros integer
)
as
Select top @numregistros * from Inmuebles
go

Un saludo.

Joaquin Pelayo


.

Respuesta Responder a este mensaje
#2 Ygnacio Durán
19/02/2004 - 19:42 | Informe spam
que tal con sql dinamico:
declare @n int
select @n = 50
declare @sSQL nVarchar(4000)
select @sSQL = 'select top ' + convert(varchar,@n) + ' * from Inmuebles'
exec sp_executesql @sSQL
revisa los BOL para instrucciones sobre sp_executesql, incluso puedes usar
parametros de entrada o salida

*** Ygnacio Durán ***


"Joaquin Pelayo" escribió en el mensaje
news:
Hola.

Tengo la siguiente duda (problema) he creado el procedimiento


adjunto,
definiendo un parametro que me permita pasar el numero que registros que
quiero retornar, pero me dice que la sintaxis es incorrecta, por mas que


lo
miro no encuentro el error, ¿no se puede hacer? ¿cual es la forma


correcta?

Create_procedure dbo.Inmuebles
(
@numregistros integer
)
as
Select top @numregistros * from Inmuebles
go

Un saludo.

Joaquin Pelayo


Respuesta Responder a este mensaje
#3 Maximiliano D. A.
19/02/2004 - 20:57 | Informe spam
ojo con el ROWCOUNT que no esta garantizado en nuevas versiones ;-), pero es
valido.


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"ulises" escribió en el mensaje
news:129fe01c3f716$262b02c0$
La clausula TOP no acepta como parametro una variable,
pero puedes usar ROWCOUNT para simularlo, algo como :

set rowcount @numregistros
Select * from Inmuebles
set rowcount 0

Saludos,
Ulises

Hola.

Tengo la siguiente duda (problema) he creado el


procedimiento adjunto,
definiendo un parametro que me permita pasar el numero


que registros que
quiero retornar, pero me dice que la sintaxis es


incorrecta, por mas que lo
miro no encuentro el error, ¿no se puede hacer? ¿cual es


la forma correcta?

Create_procedure dbo.Inmuebles
(
@numregistros integer
)
as
Select top @numregistros * from Inmuebles
go

Un saludo.

Joaquin Pelayo


.






Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.581 / Virus Database: 368 - Release Date: 09/02/2004
Respuesta Responder a este mensaje
#4 Maximiliano D. A.
19/02/2004 - 20:59 | Informe spam
si y no!!, el uso del dinamico no es aconsejable pero vale igual!!!


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Ygnacio Durán" <yduranArrobAmixmail.com> escribió en el mensaje
news:uz%
que tal con sql dinamico:
declare @n int
select @n = 50
declare @sSQL nVarchar(4000)
select @sSQL = 'select top ' + convert(varchar,@n) + ' * from Inmuebles'
exec sp_executesql @sSQL
revisa los BOL para instrucciones sobre sp_executesql, incluso puedes usar
parametros de entrada o salida

*** Ygnacio Durán ***


"Joaquin Pelayo" escribió en el mensaje
news:
> Hola.
>
> Tengo la siguiente duda (problema) he creado el procedimiento
adjunto,
> definiendo un parametro que me permita pasar el numero que registros que
> quiero retornar, pero me dice que la sintaxis es incorrecta, por mas que
lo
> miro no encuentro el error, ¿no se puede hacer? ¿cual es la forma
correcta?
>
> Create_procedure dbo.Inmuebles
> (
> @numregistros integer
> )
> as
> Select top @numregistros * from Inmuebles
> go
>
> Un saludo.
>
> Joaquin Pelayo
>
>







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.581 / Virus Database: 368 - Release Date: 09/02/2004
Respuesta Responder a este mensaje
#5 Gustavo Larriera [MVP SQL]
19/02/2004 - 22:59 | Informe spam
El TOP no admite un parámetro (esperar al SQL Yukon que hay novedades al
respecto). Lo que puedes intentar es ejecutar una query dinamica, armando la
clausula SELECT concatenando el numero para el TOP.

Gustavo Larriera, MVP-SQL, MCSE
Uruguay LatAm

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.


"Joaquin Pelayo" wrote in message
news:
Hola.

Tengo la siguiente duda (problema) he creado el procedimiento


adjunto,
definiendo un parametro que me permita pasar el numero que registros que
quiero retornar, pero me dice que la sintaxis es incorrecta, por mas que


lo
miro no encuentro el error, ¿no se puede hacer? ¿cual es la forma


correcta?

Create_procedure dbo.Inmuebles
(
@numregistros integer
)
as
Select top @numregistros * from Inmuebles
go

Un saludo.

Joaquin Pelayo


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida