Questione : Denominare una procedura immagazzinata che contiene un CURSORE da una procedura immagazzinata

Devo eseguire una procedura immagazzinata dall'interno di un altro. Posso fare con successo questo con un'eccezione e quella è quando la procedura immagazzinata denominata utilizza un CURSORE per restituire il risultato. Ho abbondanza delle procedure immagazzinate che denominano altre e prendono loro l'uscita ma in questo caso devo concatenare una serie di annotazioni collegate in un singolo cursore di string.

The per fare questo impianti, cioè. Posso mostrare che restituisce la stringa corretta ma quando eseguo la procedura immagazzinata che contiene soltanto il cursore io ottenere il risultato dal cursore. Sono sperando io ho mancato qualcosa realmente semplice qui e quel qualcuno ha che answer.

I hanno attaccato il codice per entrambe le procedure immagazzinate, i risultati dalla procedura immagazzinata interna (quella che contiene il cursore), l'uscita della rappresentazione interna di procedura immagazzinata che funziona ed alcuni risultati dell'analizzatore di domanda di SQL che mostrano due insiemi di risultato piuttosto che uno per l'aiuto memorizzato di chiamata di procedure.

Any notevolmente saranno apprezzati. il class= " il class= >

Query-Result " del _blank " " del target= " di http://filedb.experts-exchange.com/incoming/2010/08_w32/332516/Query-Result---Inner-Stored-Proc.JPG " del href=---Il class= " fileSize " > (32 Kb) il Javascript " del href= " " dei attachmentDetails del class= di (tipo di lima particolari) larghezza dello style= del >Results per: 550px; altezza: 183px; alt= " di http://filedb.experts-exchange.com/incoming/2010/08_w32/t332516/Query-Result---Inner-Stored-Proc.JPG "„ dello src= class= " >
Query-Result " del _blank " " del target= " di http://filedb.experts-exchange.com/incoming/2010/08_w32/332517/Query-Result---Outer-Stored-Proc.JPG " del href= rilevato virus---Il class= " fileSize " > (44 Kb) il Javascript " del href= " " dei attachmentDetails del class= di (tipo di lima particolari) larghezza dello style= del >Results per: 550px; altezza: 248px; il alt= " di http://filedb.experts-exchange.com/incoming/2010/08_w32/t332517/Query-Result---Outer-Stored-Proc.JPG "„ dello src= un class= " di 332517 "/>
del >
class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
il class= >/* " notpretty " del id= " codeSnippet866627 " del
           
class= > " libero " del
soluzioni >Related class= title= " ASSISTENTE del href= " /Microsoft/Development/MS-SQL-Server/SQL-Server-2005/Q_26372040.html " di SQL " del qRelatedChild " " del class= di pratica ottimale di codificazione dell'ASSISTENTE di SQL che codifica migliore Practice

Risposta : Denominare una procedura immagazzinata che contiene un CURSORE da una procedura immagazzinata

Asside dai meriti dubbiosi di quella procedura immagazzinata interna che è nel bisogno disperato della ricodificazione, state confrontando le mele agli aranci. Quando state provandolo state facendolo gradite questo:

EXEC che usp_NewProductForm_Select_Warehouse_List_For_Printing 1, ''

Tuttavia, quando lo denominate, state facendolo gradite questo:
@DocumentID usp_NewProductForm_Select_Warehouse_List_For_Printing di EXEC, USCITA di @Warehouse_List

Poiché il @Warehouse_List è NULLO e non inizializzato mai, quello è esattamente il valore che state andando ottenere indietro, senza riguardo al vostro uso non valido del @Warehouse_List PRESCELTO alla conclusione della procedura immagazzinata.

Così se stiate provando appena a riparare il codice in modo che risolva il problema, piuttosto del problema: che voi dovere iniitialize il valore del @Warehouse_List in qualche luogo.

Per esempio potete fare una di seguenti opzioni:
1. Nella vostra procedura immagazzinata esterna:
DICHIARARE il @Warehouse_List varchar (1000)

REGOLARE il @Warehouse_List = ''                -- aggiungere questa linea

@DocumentID usp_NewProductForm_Select_Warehouse_List_For_Printing di EXEC, USCITA di @Warehouse_List

2. Nella vostra procedura immagazzinata interna
REGOLARE NOCOUNT SOPRA

@Warehouse_List di/*SET = NULL*/
REGOLARE il @Warehouse_List = ''                -- aggiungere questa linea

DICHIARARE il @Name varchar (50)

3.  Cambiare questa linea nella procedura immagazzinata interna:
    COMINCIARE
        -- SELEZIONARE il @Warehouse_List = il @Warehouse_List + il @Name + “,„
        SELEZIONARE IL @WAREHOUSE_LIST = ISNULL (@WAREHOUSE_LIST, '') + IL @NAME + “,„           -- Cambiare questa linea
        ANDARE A PRENDERE DOPO da Warehouse_Cursor in @Name
    ESTREMITÀ

E quando avete prego una probabilità riscrivere che procedura immagazzinata o migliorare ancora il convertito esso ad un UDF.
Altre soluzioni  
 
programming4us programming4us