Asside de los méritos dudosos de ese procedimiento almacenado interno que esté en la necesidad desesperada de la recodificación, usted está comparando manzanas a las naranjas. Cuando usted la está probando usted la está haciendo tiene gusto de esto:
EXEC usp_NewProductForm_Select_Warehouse_List_For_Printing 1, ''
Con todo, cuando usted la llama, usted la está haciendo tiene gusto de esto:
@DocumentID usp_NewProductForm_Select_Warehouse_List_For_Printing de EXEC, SALIDA del @Warehouse_List
Puesto que el @Warehouse_List es NULO y nunca inicializado, ése es exactamente el valor que usted va a conseguir detrás, sin importar su uso inválido del @Warehouse_List SELECTO en el final del procedimiento almacenado.
Tan si usted apenas está intentando fijar el código de modo que resuelva el problema, algo que el problema: que usted necesitar iniitialize el valor del @Warehouse_List en alguna parte.
Por ejemplo usted puede hacer una de las opciones siguientes:
1. En su procedimiento almacenado externo:
DECLARAR el @Warehouse_List varchar (1000)
FIJAR el @Warehouse_List = '' -- agregar esta línea
@DocumentID usp_NewProductForm_Select_Warehouse_List_For_Printing de EXEC, SALIDA del @Warehouse_List
2. En su procedimiento almacenado interno
FIJAR NOCOUNT ENCENDIDO
@Warehouse_List de/*SET = NULL*/
FIJAR el @Warehouse_List = '' -- agregar esta línea
DECLARAR el @Name varchar (50)
3. Cambiar esta línea en el procedimiento almacenado interno:
COMENZAR
-- SELECCIONAR el @Warehouse_List = el @Warehouse_List + el @Name + “,”
SELECCIONAR EL @WAREHOUSE_LIST = ISNULL (@WAREHOUSE_LIST, '') + EL @NAME + “,” -- Cambiar esta línea
TRAER DESPUÉS de Warehouse_Cursor EN @Name
EXTREMO
Y cuando usted consigue una ocasión por favor reescribir que procedimiento almacenado o todavía mejorar a convertido él a un UDF.