Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2009, 09:49
Pinty
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 3 meses
Puntos: 14
Nombre de tabla variable

Hola a todos, he creado un procedimiento almacenado, mediante el cual hago una consulta select para cargar unos datos en una pagina web, lo que pasa es que el nombre de la tabla de la que recupero los datos es una variable, es decir hay diferentes tablas con distintos nombres pero con los mismos campos, entonces en el select tengo que especificar en que tabla encontrar los datos.
En este foro encontre con el buscador un codigo, que despues de adaptarlo quedo asi:

Código:
ALTER PROCEDURE [dbo].[procImprimirDatos] 
    @pedido bigint,
    @tabla AS varchar(200) AS DECLARE @StringSQL varchar(5000)

BEGIN SET @StringSQL = RTRIM ('SELECT ' + @tabla + '.codigo, '+@tabla+'.campo1, '+@tabla+'.campo2,
   pedido.codigo, pedido.fecha
 FROM '+@tabla+' INNER JOIN pedidos ON '+@tabla+'.pedido=pedido.codigo
 WHERE '+@tabla+'.pedido=@pedido')
 
 EXEC (@StringSQL)
 END
Este codigo me da un error:
"La funcion o procedimiento imprimir datos tiene demasiados argumentos"

Yo le paso los parametros @pedido y @tabla, desde la pagina web, esos dos datos se los paso bien.
Creo que el problema es el @StringSQL, que no se lo paso por parametro, por que segun el codigo que vi por la web, decian (si no me equivoco) que ese parametro es la consulta. Posiblemente este equivocado

Cualquier ayuda es bienvenida ya que no se que hacer, y me corre bastante prisa, llevo dias luchando con el pero no hay manera

Muchas gracias a todos. Un saludo
Pinty