SQL Server - como convertir una vista en procedimiento almacenado

 
Vista:
sin imagen de perfil
Val: 31
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

como convertir una vista en procedimiento almacenado

Publicado por caleb (13 intervenciones) el 18/12/2020 19:22:36
Hola, como puedo convertir una vista que se compone de varias tablas a un simple stored procedure?
Lo intente hacer pero me aparece un error diciendo que la vista es de solo lectura y no puede haber ningún insert.
También pensé en hacer el procedimiento directamente de las tablas pero los datos irian a sus propias tablas y esa no es la gracia.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

como convertir una vista en procedimiento almacenado

Publicado por anonymous (19 intervenciones) el 19/12/2020 16:40:24
Cuando hablas de insert, te estás refiriendo a que intentas realizar un insert into en alguna tabla, sería un procedimiento de actualización.

Publica la vista para convertirla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

como convertir una vista en procedimiento almacenado

Publicado por caleb (13 intervenciones) el 21/12/2020 13:23:44
Hola, pues el objetivo es convertir la vista a un procedimiento almacenado, he intentado varios métodos pero no he tenido éxito y el INSERT que utilice me funciono en una prueba pero no caí en cuenta que solo funcionaba en vistas que contengan una sola tabla, es decir, el insert no es necesario.
Me podrías dar un pequeño ejemplo de pasar una vista a sp para guiarme? Estoy un poco confundido, muchas gracias!

De igual forma te anexo el código por si el problema esta dentro de este...




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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
CREATE VIEW
    PTIVSTOCKTRANSACTION
    (
        ANO,
        MES,
        FECHA,
        NUM_TRANSACCION,
        LINEA_TRANSACCION,
        ALMACEN_LOGICO,
        DESC_ALMACEN_LOGICO,
        ALMACEN_CONTABLE,
        FULL_LLAVE,
        TIPOA,
        CLAVE1,
        CLAVE2,
        CLAVE3,
        CLAVE4,
        CLAVE5,
        CLAVE6,
        CLAVE7,
        CLAVE8,
        CLAVE9,
        CLAVE10,
        DESCRIPCION,
        CALIDAD,
        PLANTILLA_COD,
        PLANTILLA_DESC,
        CENTRO_COSTOS,
        DESC_CENTRO_COSTOS,
        UM_PRODUCTO,
        UM_MOVIMIENTO,
        LOTE,
        ELEMENTO,
        CONT_DOCUMENTO,
        NUM_DOCUMENTO,
        COD_MAQ_DOCU_INTERNO,
        FACT_PROVEEDOR,
        COD_RECEPCION,
        TRANSACC_CONTABLE,
        NIT_SOCIO_ORDEN,
        SOCIO_ORDEN,
        NOMBRE_SOCIO_ORDEN,
        LINEA_DOCUMENTO,
        COD_ORDEN,
        SALDO_INI_CANT,
        COSTO_TOTAL_SALDO_INI,
        COSTO_UNIT_SALDO_INI,
        CANT_ENTRADA,
        CANT_SALIDA,
        CANT__SECUND_ENTRADA,
        CANT__SECUND_SALIDA,
        CANT_KG_ENTRADA,
        CANT_KG_SALIDA,
        COSTO_ACTUAL_ENTRADA,
        COSTO_ACTUAL_SALIDA,
        COSTO_UNIT_PROV_ENTRADA,
        COSTO_UNIT_PROV_SALIDA,
        COSTO_UNIT_DEFINITIVO_ENTRADA,
        COSTO_UNIT_DEFINITIVO_SALIDA,
        COSTO_TOTAL_PROV_ENTRADA,
        COSTO_TOTAL_PROV_SALIDA,
        COSTO_TOTAL_DEFINITIVO_ENTRADA,
        COSTO_TOTAL_DEFINITIVO_SALIDA,
        CUENTA_DEBITO,
        TIPO_DEBITO_CONTABLE,
        CUENTA_CREDITO,
        TIPO_CREDITO_CONTABLE,
        MES_ANTERIOR,
        GRUPO_CONTABLE,
        ALMACEN_LOGICO_ORIGEN,
        DESCR_ALM_LOGICO_ORIGEN,
        GRUPO_CONTABLE_ORIGEN,
        ALMACEN_LOGICO_DESTINO,
        DESCR_ALM_LOGICO_DESTINO,
        GRUPO_CONTABLE_DESTINO,
        CONTADOR_OC_CONSIGNA,
        OC_CONSIGNACION,
        USARIO_CREA,
        CANT_EMPAQUE,
        UM_EMPAQUE
    )
    AS
SELECT
    YEAR(STOCKTRANSACTION.TRANSACTIONDATE)        ANO,
    MONTH(STOCKTRANSACTION.TRANSACTIONDATE)       MES,
    STOCKTRANSACTION.TRANSACTIONDATE              FECHA,
    STOCKTRANSACTION.TRANSACTIONNUMBER            NUM_TRANSACCION,
    STOCKTRANSACTION.TRANSACTIONDETAILNUMBER      LINEA_TRANSACCION,
    STOCKTRANSACTION.LOGICALWAREHOUSECODE         ALMACEN_LOGICO,
    LOGICALWAREHOUSE.LONGDESCRIPTION              AS DESC_ALMACEN_LOGICO,
    LOGICALWAREHOUSE.WAREHOUSEACCOUNTINGGROUPCODE AS ALMACEN_CONTABLE,
    (TRIM(STOCKTRANSACTION.ITEMTYPECODE) ||' '|| TRIM(STOCKTRANSACTION.DECOSUBCODE01)||' '|| TRIM
    (STOCKTRANSACTION.DECOSUBCODE02)||' '|| TRIM(STOCKTRANSACTION.DECOSUBCODE03)||' '|| TRIM
    (STOCKTRANSACTION.DECOSUBCODE04)||' '|| TRIM(STOCKTRANSACTION.DECOSUBCODE05)||' '|| TRIM
    (STOCKTRANSACTION.DECOSUBCODE06)||' '|| TRIM(STOCKTRANSACTION.DECOSUBCODE07)||' '|| TRIM
    (STOCKTRANSACTION.DECOSUBCODE08)||' '|| TRIM(STOCKTRANSACTION.DECOSUBCODE09)||' '|| TRIM
    (STOCKTRANSACTION.DECOSUBCODE10))        FULL_LLAVE,
    STOCKTRANSACTION.ITEMTYPECODE            TIPOA,
    STOCKTRANSACTION.DECOSUBCODE01           CLAVE1,
    STOCKTRANSACTION.DECOSUBCODE02           CLAVE2,
    STOCKTRANSACTION.DECOSUBCODE03           CLAVE3,
    STOCKTRANSACTION.DECOSUBCODE04           CLAVE4,
    STOCKTRANSACTION.DECOSUBCODE05           CLAVE5,
    STOCKTRANSACTION.DECOSUBCODE06           CLAVE6,
    STOCKTRANSACTION.DECOSUBCODE07           CLAVE7,
    STOCKTRANSACTION.DECOSUBCODE08           CLAVE8,
    STOCKTRANSACTION.DECOSUBCODE09           CLAVE9,
    STOCKTRANSACTION.DECOSUBCODE10           CLAVE10,
    FULLITEMKEYDECODER.SUMMARIZEDDESCRIPTION DESCRIPCION,
    STOCKTRANSACTION.QUALITYLEVELCODE        CALIDAD,
    STOCKTRANSACTION.TEMPLATECODE            PLANTILLA_COD,
    STOCKTRANSACTIONTEMPLATE.LONGDESCRIPTION PLANTILLA_DESC,
    CASE
        WHEN STOCKTRANSACTION.COSTCENTERCODE IS NULL
        THEN INTERNALDOCUMENTLINE.COSTCENTERCODE
        ELSE STOCKTRANSACTION.COSTCENTERCODE
    END                                       CENTRO_COSTOS,
    COSTCENTER.LONGDESCRIPTION                DESC_CENTRO_COSTOS,
    PRODUCT.BASEPRIMARYUNITCODE               UM_PRODUCTO,
    STOCKTRANSACTION.BASEPRIMARYUOMCODE       UM_MOVIMIENTO,
    STOCKTRANSACTION.LOTCODE                  LOTE,
    STOCKTRANSACTION.ITEMELEMENTCODE          ELEMENTO,
    STOCKTRANSACTION.ORDERCOUNTERCODE         CONT_DOCUMENTO,
    STOCKTRANSACTION.ORDERCODE                NUM_DOCUMENTO,
    SUBSTR(ADSTORAGEMQ.VALUESTRING,1,24)      COD_MAQ_DOCU_INTERNO,
    STOCKTRANSACTION.INVOICECODE              FACT_PROVEEDOR,
    STOCKTRANSACTION.BILLCODE                 COD_RECEPCION,
    STOCKTRANSACTION.ACCOUNTTRANSACTIONNUMBER TRANSACC_CONTABLE,
    COALESCE(CUSTOMER.BUSINESSPARTNERSEARCHNAME,SUPPLIER.BUSINESSPARTNERSEARCHNAME)
                                                                          NIT_SOCIO_ORDEN,
    COALESCE(STOCKTRANSACTION.CUSTOMERCODE,STOCKTRANSACTION.SUPPLIERCODE) SOCIO_ORDEN,
    COALESCE(CUSTOMER.BUSINESSPARTNERLEGALNAME1,SUPPLIER.BUSINESSPARTNERLEGALNAME1)
                                            NOMBRE_SOCIO_ORDEN,
    STOCKTRANSACTION.ORDERLINE                                         LINEA_DOCUMENTO,
    STOCKTRANSACTION.PRODUCTIONORDERCODE                               COD_ORDEN,
    COALESCE(WAREHOUSEITEMPERIODIZEDCOST.DYNAMICAVERAGECOSTTOTALQTY,0)   SALDO_INI_CANT,
    COALESCE(WAREHOUSEITEMPERIODIZEDCOST.DYNAMICAVERAGECOSTTOTALVALUE,0) COSTO_TOTAL_SALDO_INI,
    COALESCE(WAREHOUSEITEMPERIODIZEDCOST.DYNAMICAVERAGECOSTUNITVALUE,0)  COSTO_UNIT_SALDO_INI,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN STOCKTRANSACTION.BASEPRIMARYQUANTITY
        WHEN 2
        THEN 0
    END CANT_ENTRADA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN 0
        WHEN 2
        THEN STOCKTRANSACTION.BASEPRIMARYQUANTITY
    END CANT_SALIDA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN STOCKTRANSACTION.BASESECONDARYQUANTITY
        WHEN 2
        THEN 0
    END CANT__SECUND_ENTRADA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN 0
        WHEN 2
        THEN STOCKTRANSACTION.BASESECONDARYQUANTITY
    END CANT__SECUND_SALIDA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN
            CASE
                WHEN STOCKTRANSACTION.BASEPRIMARYUOMCODE = 'kg'
                THEN STOCKTRANSACTION.BASEPRIMARYQUANTITY
                WHEN STOCKTRANSACTION.BASESECONDARYUOMCODE = 'kg'
                THEN STOCKTRANSACTION.BASESECONDARYQUANTITY
                WHEN STOCKTRANSACTION.BASEPRIMARYUOMCODE = 'un'
                THEN (STOCKTRANSACTION.BASEPRIMARYQUANTITY * ADSTORAGE.VALUEDECIMAL)
            END
        WHEN 2
        THEN 0
    END CANT_KG_ENTRADA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 2
        THEN
            CASE
                WHEN STOCKTRANSACTION.BASEPRIMARYUOMCODE = 'kg'
                THEN STOCKTRANSACTION.BASEPRIMARYQUANTITY
                WHEN STOCKTRANSACTION.BASESECONDARYUOMCODE = 'kg'
                THEN STOCKTRANSACTION.BASESECONDARYQUANTITY
                WHEN STOCKTRANSACTION.BASEPRIMARYUOMCODE = 'un'
                THEN (STOCKTRANSACTION.BASEPRIMARYQUANTITY * ADSTORAGE.VALUEDECIMAL)
            END
        WHEN 1
        THEN 0
    END CANT_KG_SALIDA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN STOCKTRANSACTION.ACTUALBASECOST
        WHEN 2
        THEN 0
    END COSTO_ACTUAL_ENTRADA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN 0
        WHEN 2
        THEN STOCKTRANSACTION.ACTUALBASECOST
    END COSTO_ACTUAL_SALIDA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN STOCKTRANSACTION.PROVISIONALBASECOST
        WHEN 2
        THEN 0
    END COSTO_UNIT_PROV_ENTRADA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN 0
        WHEN 2
        THEN STOCKTRANSACTION.PROVISIONALBASECOST
    END COSTO_UNIT_PROV_SALIDA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN STOCKTRANSACTION.CLOSINGBASECOST
        WHEN 2
        THEN 0
    END COSTO_UNIT_DEFINITIVO_ENTRADA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN 0
        WHEN 2
        THEN STOCKTRANSACTION.CLOSINGBASECOST
    END COSTO_UNIT_DEFINITIVO_SALIDA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN (STOCKTRANSACTION.PROVISIONALBASECOST * STOCKTRANSACTION.BASEPRIMARYQUANTITY)
        WHEN 2
        THEN 0
    END COSTO_TOTAL_PROV_ENTRADA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN 0
        WHEN 2
        THEN (STOCKTRANSACTION.PROVISIONALBASECOST * STOCKTRANSACTION.BASEPRIMARYQUANTITY)
    END COSTO_TOTAL_PROV_SALIDA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN (STOCKTRANSACTION.CLOSINGBASECOST * STOCKTRANSACTION.BASEPRIMARYQUANTITY)
        WHEN 2
        THEN 0
    END COSTO_TOTAL_DEFINITIVO_ENTRADA,
    CASE STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE
        WHEN 1
        THEN 0
        WHEN 2
        THEN (STOCKTRANSACTION.CLOSINGBASECOST * STOCKTRANSACTION.BASEPRIMARYQUANTITY)
    END                             COSTO_TOTAL_DEFINITIVO_SALIDA,
    PROSTACCOUNTING.ACCOUNTCODE     CUENTA_DEBITO,
    PROSTACCOUNTING.ACCOUNTINGTYPE  TIPO_DEBITO_CONTABLE,
    PROSTACCOUNTING2.ACCOUNTCODE    CUENTA_CREDITO,
    PROSTACCOUNTING2.ACCOUNTINGTYPE TIPO_CREDITO_CONTABLE,
    (WAREHOUSEITEMPERIODIZEDCOST.PERIODPERIODIZEDCALENDARYEAR ||'-' ||
    WAREHOUSEITEMPERIODIZEDCOST.PERIODCODE)                      MES_ANTERIOR,
    TABAVLWAREHOUSEGROUPDETAIL.AVAILABILITYWAREHOUSEGROUPCODE AS GRUPO_CONTABLE,
    CASE STOCKTRANSACTION.DETAILTYPE
        WHEN 1
        THEN STOCKTRANSACTION.LOGICALWAREHOUSECODE
        ELSE STOCKTRANSACTION1.LOGICALWAREHOUSECODE
    END ALMACEN_LOGICO_ORIGEN,
    CASE STOCKTRANSACTION.DETAILTYPE
        WHEN 1
        THEN LOGICALWAREHOUSE.LONGDESCRIPTION
        ELSE LOGICALWAREHOUSE1.LONGDESCRIPTION
    END DESCR_ALM_LOGICO_ORIGEN,
    CASE STOCKTRANSACTION.DETAILTYPE
        WHEN 1
        THEN TABAVLWAREHOUSEGROUPDETAIL.AVAILABILITYWAREHOUSEGROUPCODE
        ELSE TABAVLWAREHOUSEGROUPDETAIL2.AVAILABILITYWAREHOUSEGROUPCODE
    END GRUPO_CONTABLE_ORIGEN,
    CASE STOCKTRANSACTION.DETAILTYPE
        WHEN 2
        THEN STOCKTRANSACTION.LOGICALWAREHOUSECODE
        ELSE STOCKTRANSACTION1.LOGICALWAREHOUSECODE
    END ALMACEN_LOGICO_DESTINO,
    CASE STOCKTRANSACTION.DETAILTYPE
        WHEN 2
        THEN LOGICALWAREHOUSE.LONGDESCRIPTION
        ELSE LOGICALWAREHOUSE1.LONGDESCRIPTION
    END DESCR_ALM_LOGICO_DESTINO ,
    CASE STOCKTRANSACTION.DETAILTYPE
        WHEN 2
        THEN TABAVLWAREHOUSEGROUPDETAIL.AVAILABILITYWAREHOUSEGROUPCODE
        ELSE TABAVLWAREHOUSEGROUPDETAIL2.AVAILABILITYWAREHOUSEGROUPCODE
    END                                                     GRUPO_CONTABLE_DESTINO ,
    PROLCCDOCLINETRANSACTIONS.PROLCCDOCLINEPROLCCDOCCNTCODE CONTADOR_OC_CONSIGNA,
    PROLCCDOCLINETRANSACTIONS.PROLCCDOCLINEPROLCCDOCCODE    OC_CONSIGNACION,
    STOCKTRANSACTION.CREATIONUSER                           USARIO_CREA,
    STOCKTRANSACTION.USERPACKAGINGQUANTITY                  CANT_EMPAQUE,
    STOCKTRANSACTION.USERPACKAGINGUOMCODE                   UM_EMPAQUE
FROM
    STOCKTRANSACTION STOCKTRANSACTION
LEFT OUTER JOIN
    WAREHOUSEITEMPERIODIZEDCOST
ON
    WAREHOUSEITEMPERIODIZEDCOST.PERIODPERIODIZEDCALENDARYEAR = YEAR(ADD_MONTHS
    (STOCKTRANSACTION.TRANSACTIONDATE,-1))
AND WAREHOUSEITEMPERIODIZEDCOST.PERIODCODE = MONTH(ADD_MONTHS(STOCKTRANSACTION.TRANSACTIONDATE,-1)
    )
AND WAREHOUSEITEMPERIODIZEDCOST.ITEMTYPEAFICODE = STOCKTRANSACTION.ITEMTYPECODE
AND WAREHOUSEITEMPERIODIZEDCOST.SUBCODE01 = STOCKTRANSACTION.DECOSUBCODE01
AND WAREHOUSEITEMPERIODIZEDCOST.SUBCODE02 = STOCKTRANSACTION.DECOSUBCODE02
AND WAREHOUSEITEMPERIODIZEDCOST.SUBCODE03 = STOCKTRANSACTION.DECOSUBCODE03
AND WAREHOUSEITEMPERIODIZEDCOST.SUBCODE04 = STOCKTRANSACTION.DECOSUBCODE04
AND WAREHOUSEITEMPERIODIZEDCOST.SUBCODE05 = STOCKTRANSACTION.DECOSUBCODE05
AND WAREHOUSEITEMPERIODIZEDCOST.SUBCODE06 = STOCKTRANSACTION.DECOSUBCODE06
AND WAREHOUSEITEMPERIODIZEDCOST.SUBCODE07 = STOCKTRANSACTION.DECOSUBCODE07
AND WAREHOUSEITEMPERIODIZEDCOST.SUBCODE08 = STOCKTRANSACTION.DECOSUBCODE08
AND WAREHOUSEITEMPERIODIZEDCOST.SUBCODE09 = STOCKTRANSACTION.DECOSUBCODE09
AND WAREHOUSEITEMPERIODIZEDCOST.SUBCODE10 = STOCKTRANSACTION.DECOSUBCODE10
AND WAREHOUSEITEMPERIODIZEDCOST.COMPANYCODE = STOCKTRANSACTION.COMPANYCODE
AND WAREHOUSEITEMPERIODIZEDCOST.PERPERIODIZEDCALENDARTYPECODE = 'MO1'
LEFT OUTER JOIN
    STOCKTRANSACTIONTEMPLATE
ON
    STOCKTRANSACTIONTEMPLATE.CODE = STOCKTRANSACTION.TEMPLATECODE
AND STOCKTRANSACTIONTEMPLATE.ONHANDUPDATE IN (1,2)
LEFT OUTER JOIN
    LOGICALWAREHOUSE
ON
    LOGICALWAREHOUSE.OWNINGCOMPANYCODE = STOCKTRANSACTION.COMPANYCODE
AND LOGICALWAREHOUSE.COMPANYCODE = STOCKTRANSACTION.LOGICALWAREHOUSECOMPANYCODE
AND LOGICALWAREHOUSE.CODE = STOCKTRANSACTION.LOGICALWAREHOUSECODE
LEFT OUTER JOIN
    FULLITEMKEYDECODER
ON
    FULLITEMKEYDECODER.ITEMTYPECODE = STOCKTRANSACTION.ITEMTYPECODE
AND FULLITEMKEYDECODER.SUBCODE01 = STOCKTRANSACTION.DECOSUBCODE01
AND FULLITEMKEYDECODER.SUBCODE02 = STOCKTRANSACTION.DECOSUBCODE02
AND FULLITEMKEYDECODER.SUBCODE03 = STOCKTRANSACTION.DECOSUBCODE03
AND FULLITEMKEYDECODER.SUBCODE04 = STOCKTRANSACTION.DECOSUBCODE04
AND FULLITEMKEYDECODER.SUBCODE05 = STOCKTRANSACTION.DECOSUBCODE05
AND FULLITEMKEYDECODER.SUBCODE06 = STOCKTRANSACTION.DECOSUBCODE06
AND FULLITEMKEYDECODER.SUBCODE07 = STOCKTRANSACTION.DECOSUBCODE07
AND FULLITEMKEYDECODER.SUBCODE08 = STOCKTRANSACTION.DECOSUBCODE08
AND FULLITEMKEYDECODER.SUBCODE09 = STOCKTRANSACTION.DECOSUBCODE09
AND FULLITEMKEYDECODER.SUBCODE10 = STOCKTRANSACTION.DECOSUBCODE10
LEFT OUTER JOIN
    PRODUCT
ON
    PRODUCT.COMPANYCODE = FULLITEMKEYDECODER.COMPANYCODE
AND PRODUCT.ITEMTYPECODE = FULLITEMKEYDECODER.ITEMTYPECODE
AND PRODUCT.SUBCODE01 = FULLITEMKEYDECODER.SUBCODE01
AND PRODUCT.SUBCODE02 = FULLITEMKEYDECODER.SUBCODE02
AND
    (
        (
            PRODUCT.SUBCODE03 = FULLITEMKEYDECODER.SUBCODE03)
    OR
        (
            PRODUCT.SUBCODE03 = ''))
AND
    (
        (
            PRODUCT.SUBCODE04 = FULLITEMKEYDECODER.SUBCODE04)
    OR
        (
            PRODUCT.SUBCODE04 = ''))
AND
    (
        (
            PRODUCT.SUBCODE05 = FULLITEMKEYDECODER.SUBCODE05)
    OR
        (
            PRODUCT.SUBCODE05 = ''))
AND
    (
        (
            PRODUCT.SUBCODE06 = FULLITEMKEYDECODER.SUBCODE06)
    OR
        (
            PRODUCT.SUBCODE06 = ''))
AND
    (
        (
            PRODUCT.SUBCODE07 = FULLITEMKEYDECODER.SUBCODE07)
    OR
        (
            PRODUCT.SUBCODE07 = ''))
AND
    (
        (
            PRODUCT.SUBCODE08 = FULLITEMKEYDECODER.SUBCODE08)
    OR
        (
            PRODUCT.SUBCODE08 = ''))
AND
    (
        (
            PRODUCT.SUBCODE09 = FULLITEMKEYDECODER.SUBCODE09)
    OR
        (
            PRODUCT.SUBCODE09 = ''))
AND
    (
        (
            PRODUCT.SUBCODE10 = FULLITEMKEYDECODER.SUBCODE10)
    OR
        (
            PRODUCT.SUBCODE10 = ''))
LEFT OUTER JOIN
    PROSTACCOUNTING PROSTACCOUNTING
ON
    PROSTACCOUNTING.COMPANY = STOCKTRANSACTION.COMPANYCODE
AND PROSTACCOUNTING.STOCKTRANSACTION = STOCKTRANSACTION.TRANSACTIONNUMBER
AND PROSTACCOUNTING.TRANSACTIONDETAILNUMBER = STOCKTRANSACTION.TRANSACTIONDETAILNUMBER
AND PROSTACCOUNTING.LINETYPE = 'D'
LEFT OUTER JOIN
    PROSTACCOUNTING PROSTACCOUNTING2
ON
    PROSTACCOUNTING2.COMPANY = STOCKTRANSACTION.COMPANYCODE
AND PROSTACCOUNTING2.STOCKTRANSACTION = STOCKTRANSACTION.TRANSACTIONNUMBER
AND PROSTACCOUNTING2.TRANSACTIONDETAILNUMBER = STOCKTRANSACTION.TRANSACTIONDETAILNUMBER
AND PROSTACCOUNTING2.LINETYPE = 'C'
LEFT OUTER JOIN
    ADSTORAGE ADSTORAGE
ON
    ADSTORAGE.UNIQUEID = FULLITEMKEYDECODER.ABSUNIQUEID
AND ADSTORAGE.NAMEENTITYNAME = 'FullItemKeyDecoder'
AND ADSTORAGE.NAMENAME = '20900'
AND ADSTORAGE.FIELDNAME = '20900'
LEFT OUTER JOIN
    PTIRVORDERPARTNER CUSTOMER
ON
    CUSTOMER.CUSTOMERSUPPLIERCOMPANYCODE = STOCKTRANSACTION.COMPANYCODE
AND CUSTOMER.CUSTOMERSUPPLIERTYPE = STOCKTRANSACTION.CUSTOMERTYPE
AND CUSTOMER.CUSTOMERSUPPLIERCODE = STOCKTRANSACTION.CUSTOMERCODE
LEFT OUTER JOIN
    PTIRVORDERPARTNER SUPPLIER
ON
    SUPPLIER.CUSTOMERSUPPLIERCOMPANYCODE = STOCKTRANSACTION.COMPANYCODE
AND SUPPLIER.CUSTOMERSUPPLIERTYPE = STOCKTRANSACTION.SUPPLIERTYPE
AND SUPPLIER.CUSTOMERSUPPLIERCODE = STOCKTRANSACTION.SUPPLIERCODE
LEFT OUTER JOIN
    (   SELECT
            AVLWAREHOUSEGROUPDETAIL.OWNINGCOMPANYCODE              OWNINGCOMPANYCODE,
            AVLWAREHOUSEGROUPDETAIL.LOGICALWAREHOUSECODE           LOGICALWAREHOUSECODE,
            AVLWAREHOUSEGROUPDETAIL.AVAILABILITYWAREHOUSEGROUPCODE AVAILABILITYWAREHOUSEGROUPCODE
        FROM
            AVLWAREHOUSEGROUPDETAIL AVLWAREHOUSEGROUPDETAIL
        INNER JOIN
            AVAILABILITYWAREHOUSEGROUP AVAILABILITYWAREHOUSEGROUP
        ON
            AVAILABILITYWAREHOUSEGROUP.OWNINGCOMPANYCODE =
            AVLWAREHOUSEGROUPDETAIL.OWNINGCOMPANYCODE
        AND AVLWAREHOUSEGROUPDETAIL.AVAILABILITYWAREHOUSEGROUPCODE =
            AVAILABILITYWAREHOUSEGROUP.CODE
        AND AVAILABILITYWAREHOUSEGROUP.LONGDESCRIPTION LIKE '**%' ) TABAVLWAREHOUSEGROUPDETAIL
ON
    TABAVLWAREHOUSEGROUPDETAIL.OWNINGCOMPANYCODE = STOCKTRANSACTION.COMPANYCODE
AND TABAVLWAREHOUSEGROUPDETAIL.LOGICALWAREHOUSECODE = STOCKTRANSACTION.LOGICALWAREHOUSECODE
LEFT OUTER JOIN
    STOCKTRANSACTION STOCKTRANSACTION1
ON
    STOCKTRANSACTION1.COMPANYCODE = STOCKTRANSACTION.COMPANYCODE
AND STOCKTRANSACTION1.TRANSACTIONDATE = STOCKTRANSACTION.TRANSACTIONDATE
AND STOCKTRANSACTION1.TRANSACTIONNUMBER = STOCKTRANSACTION.TRANSACTIONNUMBER
AND STOCKTRANSACTION1.ITEMTYPECODE = STOCKTRANSACTION.ITEMTYPECODE
AND STOCKTRANSACTION1.DECOSUBCODE01 = STOCKTRANSACTION.DECOSUBCODE01
AND STOCKTRANSACTION1.DECOSUBCODE02 = STOCKTRANSACTION.DECOSUBCODE02
AND STOCKTRANSACTION1.DECOSUBCODE03 = STOCKTRANSACTION.DECOSUBCODE03
AND STOCKTRANSACTION1.DECOSUBCODE04 = STOCKTRANSACTION.DECOSUBCODE04
AND STOCKTRANSACTION1.DECOSUBCODE05 = STOCKTRANSACTION.DECOSUBCODE05
AND STOCKTRANSACTION1.DECOSUBCODE06 = STOCKTRANSACTION.DECOSUBCODE06
AND STOCKTRANSACTION1.DECOSUBCODE07 = STOCKTRANSACTION.DECOSUBCODE07
AND STOCKTRANSACTION1.DECOSUBCODE08 = STOCKTRANSACTION.DECOSUBCODE08
AND STOCKTRANSACTION1.DECOSUBCODE09 = STOCKTRANSACTION.DECOSUBCODE09
AND STOCKTRANSACTION1.DECOSUBCODE10 = STOCKTRANSACTION.DECOSUBCODE10
AND STOCKTRANSACTION1.FULLITEMIDENTIFIER = STOCKTRANSACTION.FULLITEMIDENTIFIER
AND STOCKTRANSACTION1.DETAILTYPE =
    CASE STOCKTRANSACTION.DETAILTYPE
        WHEN '1'
        THEN '2'
        ELSE '1'
    END
AND STOCKTRANSACTION1.ABSUNIQUEID =
    (   SELECT
            CASE STOCKTRANSACTION.DETAILTYPE
                WHEN '1'
                THEN MIN(STOCKTRANSACTION2.ABSUNIQUEID)
                ELSE MAX(STOCKTRANSACTION2.ABSUNIQUEID)
            END
        FROM
            STOCKTRANSACTION STOCKTRANSACTION2
        WHERE
            STOCKTRANSACTION2.COMPANYCODE = STOCKTRANSACTION.COMPANYCODE
        AND STOCKTRANSACTION2.TRANSACTIONDATE = STOCKTRANSACTION.TRANSACTIONDATE
        AND STOCKTRANSACTION2.TRANSACTIONNUMBER = STOCKTRANSACTION.TRANSACTIONNUMBER
        AND STOCKTRANSACTION2.ITEMTYPECODE = STOCKTRANSACTION.ITEMTYPECODE
        AND STOCKTRANSACTION2.DECOSUBCODE01 = STOCKTRANSACTION.DECOSUBCODE01
        AND STOCKTRANSACTION2.DECOSUBCODE02 = STOCKTRANSACTION.DECOSUBCODE02
        AND STOCKTRANSACTION2.DECOSUBCODE03 = STOCKTRANSACTION.DECOSUBCODE03
        AND STOCKTRANSACTION2.DECOSUBCODE04 = STOCKTRANSACTION.DECOSUBCODE04
        AND STOCKTRANSACTION2.DECOSUBCODE05 = STOCKTRANSACTION.DECOSUBCODE05
        AND STOCKTRANSACTION2.DECOSUBCODE06 = STOCKTRANSACTION.DECOSUBCODE06
        AND STOCKTRANSACTION2.DECOSUBCODE07 = STOCKTRANSACTION.DECOSUBCODE07
        AND STOCKTRANSACTION2.DECOSUBCODE08 = STOCKTRANSACTION.DECOSUBCODE08
        AND STOCKTRANSACTION2.DECOSUBCODE09 = STOCKTRANSACTION.DECOSUBCODE09
        AND STOCKTRANSACTION2.DECOSUBCODE10 = STOCKTRANSACTION.DECOSUBCODE10
        AND STOCKTRANSACTION2.FULLITEMIDENTIFIER = STOCKTRANSACTION.FULLITEMIDENTIFIER
        AND STOCKTRANSACTION2.DETAILTYPE =
            CASE STOCKTRANSACTION.DETAILTYPE
                WHEN '1'
                THEN '2'
                ELSE '1'
            END
        AND
            (
                (
                    (
                        STOCKTRANSACTION2.LOTCODE = STOCKTRANSACTION.LOTCODE
                    OR  NVL(STOCKTRANSACTION2.LOTCODE,'')= '' )
                AND
                    (
                        STOCKTRANSACTION2.ITEMELEMENTCODE = STOCKTRANSACTION.ITEMELEMENTCODE
                    OR  NVL(STOCKTRANSACTION2.ITEMELEMENTCODE,'')= '' ))
            OR  STOCKTRANSACTION.DETAILTYPE = '2' )
        AND
            (
                (
                    (
                        STOCKTRANSACTION2.LOTCODE = STOCKTRANSACTION.LOTCODE
                    OR  NVL(STOCKTRANSACTION.LOTCODE,'')= '' )
                AND
                    (
                        STOCKTRANSACTION2.ITEMELEMENTCODE = STOCKTRANSACTION.ITEMELEMENTCODE
                    OR  NVL(STOCKTRANSACTION.ITEMELEMENTCODE,'')= '' ))
            OR  STOCKTRANSACTION.DETAILTYPE = '1')
        AND
            (
                (
                    STOCKTRANSACTION2.ABSUNIQUEID > STOCKTRANSACTION.ABSUNIQUEID
                OR  STOCKTRANSACTION.DETAILTYPE = '2')
            AND
                (
                    STOCKTRANSACTION2.ABSUNIQUEID < STOCKTRANSACTION.ABSUNIQUEID
                OR  STOCKTRANSACTION.DETAILTYPE = '1')) )
LEFT OUTER JOIN
    LOGICALWAREHOUSE LOGICALWAREHOUSE1
ON
    LOGICALWAREHOUSE1.OWNINGCOMPANYCODE = STOCKTRANSACTION1.COMPANYCODE
AND LOGICALWAREHOUSE1.COMPANYCODE = STOCKTRANSACTION1.LOGICALWAREHOUSECOMPANYCODE
AND LOGICALWAREHOUSE1.CODE = STOCKTRANSACTION1.LOGICALWAREHOUSECODE
LEFT OUTER JOIN
    (   SELECT
            AVLWAREHOUSEGROUPDETAIL.OWNINGCOMPANYCODE              OWNINGCOMPANYCODE,
            AVLWAREHOUSEGROUPDETAIL.LOGICALWAREHOUSECODE           LOGICALWAREHOUSECODE,
            AVLWAREHOUSEGROUPDETAIL.AVAILABILITYWAREHOUSEGROUPCODE AVAILABILITYWAREHOUSEGROUPCODE
        FROM
            AVLWAREHOUSEGROUPDETAIL AVLWAREHOUSEGROUPDETAIL
        INNER JOIN
            AVAILABILITYWAREHOUSEGROUP AVAILABILITYWAREHOUSEGROUP
        ON
            AVAILABILITYWAREHOUSEGROUP.OWNINGCOMPANYCODE =
            AVLWAREHOUSEGROUPDETAIL.OWNINGCOMPANYCODE
        AND AVLWAREHOUSEGROUPDETAIL.AVAILABILITYWAREHOUSEGROUPCODE =
            AVAILABILITYWAREHOUSEGROUP.CODE
        AND AVAILABILITYWAREHOUSEGROUP.LONGDESCRIPTION LIKE '**%' ) TABAVLWAREHOUSEGROUPDETAIL2
ON
    TABAVLWAREHOUSEGROUPDETAIL2.OWNINGCOMPANYCODE = STOCKTRANSACTION1.COMPANYCODE
AND TABAVLWAREHOUSEGROUPDETAIL2.LOGICALWAREHOUSECODE = STOCKTRANSACTION1.LOGICALWAREHOUSECODE
LEFT OUTER JOIN
    (   SELECT
            DISTINCT PROLCCDOCLINEPROLCCDOCCMYCODE,
            PROLCCDOCLINETRANSACTIONS.PROLCCDOCLINEPROLCCDOCCNTCODE,
            PROLCCDOCLINETRANSACTIONS.PROLCCDOCLINEPROLCCDOCCODE,
            PROLCCDOCLINETRANSACTIONS.TRANSACTIONNUMBER
        FROM
            PROLCCDOCUMENT
        INNER JOIN
            PROLCCDOCLINETRANSACTIONS
        ON
            PROLCCDOCUMENT.COMPANYCODE = PROLCCDOCLINETRANSACTIONS.PROLCCDOCLINEPROLCCDOCCMYCODE
        AND PROLCCDOCUMENT.COUNTERCODE = PROLCCDOCLINETRANSACTIONS.PROLCCDOCLINEPROLCCDOCCNTCODE
        AND PROLCCDOCUMENT.CODE = PROLCCDOCLINETRANSACTIONS.PROLCCDOCLINEPROLCCDOCCODE
        WHERE
            PROLCCDOCUMENT.PROGRESSSTATUS IN('0',
                                             '2') ) PROLCCDOCLINETRANSACTIONS
ON
    PROLCCDOCLINETRANSACTIONS.PROLCCDOCLINEPROLCCDOCCMYCODE = STOCKTRANSACTION.COMPANYCODE
AND PROLCCDOCLINETRANSACTIONS.TRANSACTIONNUMBER = STOCKTRANSACTION.TRANSACTIONNUMBER
LEFT OUTER JOIN
    INTERNALDOCUMENTLINE
ON
    INTERNALDOCUMENTLINE.INTERNALDOCUMENTCOMPANYCODE = STOCKTRANSACTION.COMPANYCODE
AND INTERNALDOCUMENTLINE.INTDOCPROVISIONALCOUNTERCODE = STOCKTRANSACTION.ORDERCOUNTERCODE
AND INTERNALDOCUMENTLINE.INTDOCUMENTPROVISIONALCODE = STOCKTRANSACTION.ORDERCODE
AND INTERNALDOCUMENTLINE.ORDERLINE = STOCKTRANSACTION.ORDERLINE
LEFT OUTER JOIN
    INTERNALDOCUMENT
ON
    INTERNALDOCUMENT.COMPANYCODE = INTERNALDOCUMENTLINE.INTERNALDOCUMENTCOMPANYCODE
AND INTERNALDOCUMENT.PROVISIONALCOUNTERCODE = INTERNALDOCUMENTLINE.INTDOCPROVISIONALCOUNTERCODE
AND INTERNALDOCUMENT.PROVISIONALCODE = INTERNALDOCUMENTLINE.INTDOCUMENTPROVISIONALCODE
LEFT OUTER JOIN
    COSTCENTER
ON
    COSTCENTER.OWNINGCOMPANYCODE = STOCKTRANSACTION.COMPANYCODE
AND COSTCENTER.CODE = (
    CASE
        WHEN STOCKTRANSACTION.COSTCENTERCODE IS NULL
        THEN INTERNALDOCUMENTLINE.COSTCENTERCODE
        ELSE STOCKTRANSACTION.COSTCENTERCODE
    END )
LEFT OUTER JOIN
    ADSTORAGE ADSTORAGEMQ
ON
    ADSTORAGEMQ.UNIQUEID = INTERNALDOCUMENT.ABSUNIQUEID
AND ADSTORAGEMQ.NAMEENTITYNAME = 'InternalDocument'
AND ADSTORAGEMQ.NAMENAME = 'PMMachine'
AND ADSTORAGEMQ.FIELDNAME = 'PMMachineCode';
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como convertir una vista en procedimiento almacenado

Publicado por anonymous (19 intervenciones) el 21/12/2020 20:10:56
Un procedimiento almacenado que involucre devolución de datos, siempre tendrá que tener una instrucción: Select en el cuerpo del procedimiento (pero que no sea SELECT INTO…. NI INSERT…SELECT).

CREATE PROCEDURE XXXX

AS
SET NOCOUNT ON;

--- Acá irá tu Query
SELECT YEAR(STOCKTRANSACTION.TRANSACTIONDATE)ANO, ……

RETURN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

como convertir una vista en procedimiento almacenado

Publicado por caleb (13 intervenciones) el 21/12/2020 20:41:48
Gracias por la respuesta, ya lo he modificado y si me logró compilar, lo único negativo es que el procedimiento se demora igual o incluso un poco más que ejecutar la vista. Algún consejo para acelerar un sp? nuevamente gracias :D


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
CREATE OR REPLACE PROCEDURE "DB2ADMIN"."PROCEDURESTOCK_SP_DEFINITIVO" (IN transaccion integer ) DYNAMIC RESULT SETS 1
SPECIFIC SQL201216104354999
P1:
BEGIN
  DECLARE cursor1 CURSOR WITH RETURN for
 
 
SELECT
        ANO,
        MES,
        FECHA,
        HORA,
        NUM_TRANSACCION,
        LINEA_TRANSACCION,
        ALMACEN_LOGICO,
        DESC_ALMACEN_LOGICO,
        ALMACEN_CONTABLE,
        FULL_LLAVE,
        TIPOA,
        CLAVE1,
        CLAVE2,
        CLAVE3,
        CLAVE4,
        CLAVE5,
        CLAVE6,
        CLAVE7,
        CLAVE8,
        CLAVE9,
        CLAVE10,
        DESCRIPCION,
        CALIDAD,
        PLANTILLA_COD,
        PLANTILLA_DESC,
        CENTRO_COSTOS,
        DESC_CENTRO_COSTOS,
        UM_PRODUCTO,
        UM_MOVIMIENTO,
        LOTE,
        ELEMENTO,
        CONT_DOCUMENTO,
        NUM_DOCUMENTO,
        COD_MAQ_DOCU_INTERNO,
        FACT_PROVEEDOR,
        COD_RECEPCION,
        TRANSACC_CONTABLE,
        NIT_SOCIO_ORDEN,
        SOCIO_ORDEN,
        NOMBRE_SOCIO_ORDEN,
        LINEA_DOCUMENTO,
        COD_ORDEN,
        SALDO_INI_CANT,
        COSTO_TOTAL_SALDO_INI,
        COSTO_UNIT_SALDO_INI,
        CANT_ENTRADA,
        CANT_SALIDA,
        CANT__SECUND_ENTRADA,
        CANT__SECUND_SALIDA,
        CANT_KG_ENTRADA,
        CANT_KG_SALIDA,
        COSTO_ACTUAL_ENTRADA,
        COSTO_ACTUAL_SALIDA,
        COSTO_UNIT_PROV_ENTRADA,
        COSTO_UNIT_PROV_SALIDA,
        COSTO_UNIT_DEFINITIVO_ENTRADA,
        COSTO_UNIT_DEFINITIVO_SALIDA,
        COSTO_TOTAL_ACTUAL_ENTRADA,
        COSTO_TOTAL_ACTUAL_SALIDA,
        COSTO_TOTAL_PROV_ENTRADA,
        COSTO_TOTAL_PROV_SALIDA,
        COSTO_TOTAL_DEFINITIVO_ENTRADA,
        COSTO_TOTAL_DEFINITIVO_SALIDA,
        CUENTA_DEBITO,
        TIPO_DEBITO_CONTABLE,
        CUENTA_CREDITO,
        TIPO_CREDITO_CONTABLE,
        MES_ANTERIOR,
        GRUPO_CONTABLE,
        ALMACEN_LOGICO_ORIGEN,
        DESCR_ALM_LOGICO_ORIGEN,
        GRUPO_CONTABLE_ORIGEN,
        ALMACEN_LOGICO_DESTINO,
        DESCR_ALM_LOGICO_DESTINO,
        GRUPO_CONTABLE_DESTINO,
        CONTADOR_OC_CONSIGNA,
        OC_CONSIGNACION,
        USARIO_CREA,
        CANT_EMPAQUE,
        UM_EMPAQUE,
        PORTAFOLIO,
        ORIGEN_PORTAFOLIO
 FROM  DB2ADMIN.PTIVSTOCKTRANSACTION_PRUEBA
WHERE  LINEA_TRANSACCION = transaccion;
 
 
   OPEN cursor1;
 
END P1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como convertir una vista en procedimiento almacenado

Publicado por anonymous (19 intervenciones) el 21/12/2020 20:50:27
Caleb, debes hacerle un explain plan al query y evaluar donde está consumiendo más recursos.

Analizar si está enlazando con las otras tablas a través de buenos índices, observar muy bien cuando haces los join que recorra primero las tablas más pequeñas y no al contrario, pues AUB = BUA, matemáticamente hablando, pero a nivel de bases de datos no puedes hacerlo tan olimpicamente, porque si haces un A join B y A tiene un millón de registros y B tiene mil por decir algo, pones de rodillas ese servidor, debes ser muy cuidadoso en este aspecto.

Lo otro que alcanzo a ver por encima es que tu vista maneja When CASE y eso es desastroso para cualquier bases de datos, esas operaciones ralentizan demasiado, yo no sé hasta que punto sea factible obviar eso; pero por lo pronto hacedle un explain plan haber que te sugiere el propio motor.

No veo la necesidad de ese cursor, el desempeño de los cursores de Microsoft es muy pobre, comparado con los de Oracle, por favor evítalo, es que para que el sp te devuelva el conjunto de resultados no necesariamente tienes que emplear ese cursor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como convertir una vista en procedimiento almacenado

Publicado por anonymous (19 intervenciones) el 21/12/2020 21:14:31
Y por favor no olvides el SET NOCOUNT ON;

Para evitar que SQL Server cuente y haga cosas...

Eso consume recursos innecesarios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

como convertir una vista en procedimiento almacenado

Publicado por caleb (13 intervenciones) el 21/12/2020 22:58:39
Entendido. Todo muy claro, gracias de verdad!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar