Buen día, espero que durante el fin de semana hayan cargado bien las baterías...
Necesito saber como puedo hacer para recuperar parametros desde una Stored Procedure, que creo que tengo que llamar de forma dinámica...
Con el siguiente ejemplo se recupera el Nombre del cliente 5....
Código SQL
[-]DECLARE @miVar VARCHAR(30)
SET @miVar = (SELECT Nombre FROM Clientes WHERE Codigo = 5)
Pero que ocurre cuando quiero recuperar el Nombre de un determinado Cliente, Empleado, Proveedor, ...
Tendría que hacer algo del estilo (por ejemplo para recuperar el cliente, o el proveedor, o ... base):
#1
Código SQL
[-]DECLARE @miVar VARCHAR(30)
DECLARE @miTabla VARCHAR(30)
SET @miVar = (SELECT Nombre FROM @miTabla WHERE Codigo = 0)
-- General SQL Error. Must Declare the variable '@miTabla'
Entonces, tengo que recurrir a SQL Dinámico... pero me enfrento al problema de recuperar el valor del resultado.
#2 O bien lo hago así, y me parece una chapuza...
Código SQL
[-]
DECLARE @miVar VARCHAR(100)
DECLARE @stmt VARCHAR(1000)
DECLARE @miTabla VARCHAR(100)
SET @miTabla = 'Clientes'
SET @stmt = 'DECLARE @mv VARCHAR (100) '
SET @stmt = @stmt + 'SET @mv = ( '
SET @stmt = @stmt + 'SELECT Nome '
SET @stmt = @stmt + 'FROM ' + @miTabla + ' '
SET @stmt = @stmt + 'WHERE CodTerc = 0 '
SET @stmt = @stmt + ') '
SET @stmt = @stmt + 'INSERT INTO __Contenedor (Campo) '
SET @stmt = @stmt + 'VALUES (@mv)'
EXEC (@stmt)
SET @miVar = (SELECT Campo FROM __Contenedor) --Lo consegui
O bien, con la ayuda de todos, pensamos en otra solución. Lo estuve intentando hacer con sp_executesql, pero no he logrado recuperar nada que no fuera el result status
(muy útil).
Un saludo y a ver que podemos lograr hacer.