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

Funciones usuarios

Estas en el tema de Funciones usuarios en el foro de SQL Server en Foros del Web. Buenas Utilizo el Sql Server, pues bien estoy haciendo una funcion que contiene un consulta que devuelve de 1 a N valores SELECT MATRICULADAS FROM ...
  #1 (permalink)  
Antiguo 06/02/2006, 04:56
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Funciones usuarios

Buenas
Utilizo el Sql Server, pues bien estoy haciendo una funcion que contiene un consulta que devuelve de 1 a N valores

SELECT MATRICULADAS FROM ASIGNATURAS WHERE DNI_ALUMNO=DNI

Pues bien esta consulta me puede devolver mas de un campo, entonces como lo igualo?¿

Pq he intentado hacer:

Declare @vector varchar(10) y luego hacer:

varchar=(SELECT MATRICULADAS FROM ASIGNATURAS WHERE DNI_ALUMNO=DNI)

Y como es logico no funciona, es más para ir bien tendria que devolverme enteros, ya que por cada identificador que me devuelva la 1ª consulta debo hacer otra consulta que me puede devolver 'n' valores tb, alguna idea?¿

GRACIAS
  #2 (permalink)  
Antiguo 07/02/2006, 16:39
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Creo que la lógica de tu programa anda coja por algún lado. Lo que ahí recibes es una tabla, y como tabla debe ser manejado, no un string/varchar.

Si lo que quieres es una cadena con la lista corridita entonces tienes que hacer algunos cambios, pero considerando que será una cadena, no podrás seleccionar cada ítem individualmente como lo haces con la tabla
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 08/02/2006, 14:00
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Pues el problema lo he solventado dsd codigo es decir, haciendo la funcion en visual c# y trabajando dsd alli, pero en SQL como lo haria para almacenar los valores de una consulta como esa?¿, lo del varchar lo puse por poner pq estaba ya desesperado, pero como seria?¿

GRACIAS
  #4 (permalink)  
Antiguo 08/02/2006, 15:38
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
SELECT MATRICULADAS FROM ASIGNATURAS WHERE DNI_ALUMNO=DNI

Eso te regresa un recordset (o equivalente) que cualquier lenguaje que se precie es capaz de manejar.

Si lo quieres almacenar para utilizarlo más adelante (por ejemplo, trabajando dentro de un SP) puedes usar las tablas temporales (que solo existen en el contexto de tu sesión de DB):

SELECT MATRICULADAS
INTO #tblTemp
FROM ASIGNATURAS WHERE DNI_ALUMNO=DNI

--bla bla bla

SELECT * FROM #tblTemp
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 09/02/2006, 01:21
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Pues gracias por tu ayuda, pero esto ya se me escapa de las manos, tendré que mirar algun manual de referencia
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 00:14.