Pergunta : Chamar um procedimento armazenado que contem um CURSOR de um procedimento armazenado

Eu preciso de executar um procedimento armazenado dentro de outro. Eu posso fazer este com sucesso com uma exceção e aquela é quando o procedimento armazenado chamado usa um CURSOR para retornar o resultado. Eu tenho a abundância dos procedimentos armazenados que chamam outro e pegaram a saída deles mas neste caso eu preciso de concatenar uma série de registros lig em um único cursor de string.

The para fazer este trabalhos, isto é. Eu posso mostrar que retorna a corda correta mas quando eu executo o procedimento armazenado que contem o cursor mim somente começ o resultado do cursor. Eu sou esperando mim faltei algo realmente simples aqui e esse alguém tem que answer.

I uniram o código para ambos os procedimentos armazenados, os resultados do procedimento armazenado interno (essa que contem o cursor), a saída da exibição interna do procedimento armazenado que trabalha e alguns resultados do analisador de pergunta do SQL que mostram dois jogos do resultado um pouco do que um para a ajuda armazenada de chamada de procedure.

Any serão apreciados extremamente. o class= de " class= >

Query-Result do " _blank " " do target= de " http://filedb.experts-exchange.com/incoming/2010/08_w32/332516/Query-Result---Inner-Stored-Proc.JPG " do href=---O class= " fileSize " > (32 KB) Javascript " do href= o " dos " attachmentDetails do class= de (tipo de lima detalhes) largura do style= >Results para: 550px; altura: 183px; alt= " de http://filedb.experts-exchange.com/incoming/2010/08_w32/t332516/Query-Result---Inner-Stored-Proc.JPG " do” src= class= >
Query-Result detetado vírus " do _blank " do " target= " de http://filedb.experts-exchange.com/incoming/2010/08_w32/332517/Query-Result---Outer-Stored-Proc.JPG do " href=---O class= " fileSize " > (44 KB) Javascript " do href= o " dos " attachmentDetails do class= de (tipo de lima detalhes) largura do style= >Results para: 550px; altura: 248px; alt= " de http://filedb.experts-exchange.com/incoming/2010/08_w32/t332517/Query-Result---Outer-Stored-Proc.JPG o " do” src= class= " de 332517 "/>
>
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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:
o class= >/* " notpretty " do id= " codeSnippet866627 " do
           
class= > " desobstruído " do
soluções >Related class= title= do " USUÁRIO do href= " /Microsoft/Development/MS-SQL-Server/SQL-Server-2005/Q_26372040.html " do SQL do " qRelatedChild " " do class= da melhor prática da codificação do USUÁRIO SQL que codifica o melhor Practice

Resposta : Chamar um procedimento armazenado que contem um CURSOR de um procedimento armazenado

Asside dos méritos duvidosos desse procedimento armazenado interno que está na necessidade desesperada de recoding, você está comparando maçãs às laranjas. Quando você a está testando você está fazendo-a gosta disto:

EXEC que usp_NewProductForm_Select_Warehouse_List_For_Printing 1, ''

Contudo, quando você a chama, você está fazendo-a gosta disto:
@DocumentID usp_NewProductForm_Select_Warehouse_List_For_Printing de EXEC, SAÍDA do @Warehouse_List

Desde que o @Warehouse_List é NULO e nunca inicializado, aquele é exatamente o valor que você está indo receber de volta, não obstante seu uso inválido do @Warehouse_List SELETO no fim do procedimento armazenado.

Assim se você apenas está tentando reparar o código de modo que resolva o problema, um pouco do que repara o problema: do que você precisar de iniitialize em algum lugar o valor do @Warehouse_List.

Por exemplo você pode fazer uma das seguintes opções:
1. Em seu procedimento armazenado exterior:
DECLARAR o @Warehouse_List varchar (1000)

AJUSTAR o @Warehouse_List = ''                -- adicionar esta linha

@DocumentID usp_NewProductForm_Select_Warehouse_List_For_Printing de EXEC, SAÍDA do @Warehouse_List

2. Em seu procedimento armazenado interno
AJUSTAR NOCOUNT SOBRE

@Warehouse_List de/*SET = NULL*/
AJUSTAR o @Warehouse_List = ''                -- adicionar esta linha

DECLARAR o @Name varchar (50)

3.  Mudar esta linha no procedimento armazenado interno:
    COMEÇAR
        -- SELECIONAR o @Warehouse_List = o @Warehouse_List + o @Name + “,”
        SELECIONAR O @WAREHOUSE_LIST = O ISNULL (@WAREHOUSE_LIST, '') + O @NAME + “,”           -- Mudar esta linha
        BUSCAR EM SEGUIDA de Warehouse_Cursor no @Name
    EXTREMIDADE

E quando você começ uma possibilidade por favor reescrever que procedimento armazenado ou melhorar ainda o converso ele a um UDF.
Outras soluções  
 
programming4us programming4us