Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

URGENTISIMO2: top dinamico??

Estas en el tema de URGENTISIMO2: top dinamico?? en el foro de Bases de Datos General en Foros del Web. Hola... se puede hacer algo como : SELECT TOP @VARIABLE FROM TABLA ? ?????? de modo de obtener un numero variable de registros...
  #1 (permalink)  
Antiguo 08/02/2005, 09:55
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
URGENTISIMO2: top dinamico??

Hola... se puede hacer algo como :


SELECT TOP @VARIABLE FROM TABLA


?

??????

de modo de obtener un numero variable de registros
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #2 (permalink)  
Antiguo 08/02/2005, 10:33
Avatar de mesiasdiabolico  
Fecha de Ingreso: agosto-2004
Mensajes: 33
Antigüedad: 19 años, 8 meses
Puntos: 0
se podria con sqlExecute que recibe de param un string

el cual armarias dinamicamente.... pero es realmente muy feo...

otra opcion seria manejar algun de tipo de orden secuencial creo habria q limarlo un poko....
__________________
Como mata el viento norte...
  #3 (permalink)  
Antiguo 08/02/2005, 11:14
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
GRACIAS... por mientras lo hice con muchos if :P

if @valor=1
begin
select top 1 from table
end
....

y asì por muchos màs.....

(una asquerosidad) XDD


Qué es el sql execute??... se puede ocupar con el query del sql server 2000??

saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #4 (permalink)  
Antiguo 08/02/2005, 11:39
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 4 meses
Puntos: 11
te paso un proc que tengo yo para hacer select dinamicos (no dejo que el usuario los escriba, mas bien yo los construyo en base a unas reglas ya establecidas)
Código:
Create procedure SQLDinamico @cTabla as char(25), @cFini as char(25), @cFiltro as char(300), @cCampos as char(150) as
begin
	declare @cSql as varchar(2500)
	set @cSql = 'Select '+ltrim(Rtrim(@cFini)) 
	if len(ltrim(rtrim(@cCampos)))=0 
		set @cCampos = ' * '
	
	set @cSql = @cSql +' '+ltrim(rtrim(@cCampos)) + ' From '+ ltrim(rtrim(@cTabla)) + ' '+ltrim(rtrim(cast(@cFiltro as char(300))))
	--Para debugear puedes descomentar esto:
	/*
		Print @cSql
	--	que dara como resultado como esta formando la instruccion
	*/
	exec sp_sqlexec @cSql
end
uso:

Primer parametro: Tabla en la que se realiza el select
segundo: funcion a utilizar (distinct, top, etc)
tercero: Filtro a usar (where, order by, group, etc, van aca)
Cuarto: campos a

te pongo un par de ejemplos

exec SQLDinamico 'tbl_asegs_humano','distinct ',' order by id_linea','id_linea'

exec SQLDinamico 'tbl_asegs_humano','Top 100 ',' where vigor =0 order by id_linea','*'


Saludos
__________________
Jorge Mota
Blog
Gubiz estafa

Última edición por Jorge_Mota; 08/02/2005 a las 12:04
  #5 (permalink)  
Antiguo 08/02/2005, 11:47
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
HOLA... muchas gracias!!

perodon por la ignorancia, pero un SP puede llamarse dentro de un cursor?

Es que tengo un buen codigo de un cursor y en una parte debo realizar un insert a una tabla y ahì debo poner el

exec SQLDinamico 'tabla','Top 100 ',' where vigor =0 order by id_linea','*'

Saludos y muchìsimas gracias por el sp....:)
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #6 (permalink)  
Antiguo 08/02/2005, 11:51
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 4 meses
Puntos: 11
si creo que si, deberia dejarte, con
insert into table exec SQLDinamico 'tbl_asegs_humano','Top 100 ',' where vigor =0 order by id_linea','*'

prueba a ver, por que nunca he usado eso :p

Saludos
__________________
Jorge Mota
Blog
Gubiz estafa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:36.