Ejecutar un procedimiento almacenado para todos los registros de un select

09/05/2005 - 08:18 por Carmen | Informe spam
¿Es posible ejecutar un procedimiento almacenado para todos los registros de
una select (al procedimiento almacenado hay que un campo de estos registros)
sin necesidad de utilizar un cursor?

Muchas gracias.

Preguntas similare

Leer las respuestas

#6 Alonso
10/05/2005 - 13:12 | Informe spam
1) Y con unos 500 a 1000 registros la degradacion puede ser significativa
para un cursor ?

2) La degradacion solo es funcion del tamano del cursor ? o tambien depende
de la complejidad del query o sP a ejecutar para cada fila del cursor ?


gracias por la ayuda



"Alejandro Mesa" wrote in message
news:
Alonso,

> Bueno, ya eso es otra cosa. Pero no es el hecho puro y simple de decir


:
> "nunca usar cursores!!!" porque si no se deben usar nunca entonces MS
> debería excluirlos definitivamente del TSQL.

Microsoft no los ha excluido y algunas veces tambien los usa. Por ejemplo,
en la base de datos master, los siguientes procedimientos almacenados usan
cursor.

sp_adjustpublisheridentityrange
sp_bindefault
sp_bindrule
sp_change_subscription_properties
sp_check_removable
sp_cleanupdbreplication
sp_convertwebtasks
sp_copysubscription
sp_createstats
sp_databases
sp_describe_cursor
sp_describe_cursor_columns
sp_describe_cursor_tables
sp_drop_agent_profile
sp_droparticle
sp_dropdistributor
sp_droplogin
sp_dropmergearticle
sp_dropmergepublication
sp_dropmergepullsubscription
sp_dropmergesubscription
sp_droppublication
sp_droppullsubscription
sp_dropsubscriber
sp_dropsubscription
sp_expired_subscription_cleanup
sp_fulltext_catalog
sp_fulltext_database
sp_help_fulltext_catalogs_cursor
sp_help_fulltext_columns_cursor
sp_help_fulltext_tables_cursor
sp_helpconstraint
sp_helpdb
sp_helpdistpublisher
sp_helpdistributiondb
sp_helpindex
sp_helplogins
sp_helpmergearticleconflicts
sp_helpmergepullsubscription
sp_helpmergesubscription
sp_helppublication
sp_helppullsubscription
sp_helpreplicationdboption
sp_helpstats
sp_helptext
sp_mergecleanupmetadata
sp_mergemetadataretentioncleanup
sp_mergesubscription_cleanup
sp_MSaddguidindex
sp_MSadjustmergeidentity
sp_MSareallcolumnscomputed
sp_MSarticlecol
sp_MSchange_retention
sp_MScleanup_conflict
sp_MScleanup_conflict_table
sp_MScleanup_metadata
sp_MScleanupdynsnapshotvws
sp_MScleanupmergepublisher
sp_MScleanuptask
sp_MScreatebeforetable
sp_MSdbuseraccess
sp_MSdefer_check
sp_MSdelete_specifiedcontents
sp_MSdrop_6x_replication_agent
sp_MSdrop_expired_mergesubscription
sp_MSdrop_expired_subscription
sp_MSdroparticleconstraints
sp_MSdropfkreferencingarticle
sp_MSdropmergedynamicsnapshotjob
sp_MSenum_replqueues
sp_MSenum_replsqlqueues
sp_MSenumallpublications
sp_MSenumallsubscriptions
sp_MSenumpubreferences
sp_MSenumthirdpartypublicationvendornames
sp_MSexclause
sp_MSfix_6x_tasks
sp_MSfixupbeforeimagetables
sp_MSforeachdb
sp_MSforeachtable
sp_MSget_col_position
sp_MSget_synctran_commands
sp_MSgetbeforetableinsert
sp_MSgetcolumnlist
sp_MSgetviewcolumnlist
sp_MShelpalterbeforetable
sp_MShelpcreatebeforetable
sp_MShelpmergeconflictcounts
sp_MShelptranconflictcounts
sp_MSinit_replication_perfmon
sp_MSinsertbeforeimageclause
sp_MSisnonpkukupdateinconflict
sp_MSispkupdateinconflict
sp_MSload_replication_status
sp_MSloginmappings
sp_MSmakedynsnapshotvws
sp_MSmakeselectproc
sp_MSpost_auto_proc
sp_MSprep_exclusive
sp_MSpropagateschematorepubs
sp_MSpub_adjust_identity
sp_MSpublicationcleanup
sp_MSreenable_check
sp_MSreinit_failed_subscriptions
sp_MSreinit_hub
sp_MSremove_userscript
sp_MSremovedbreplication
sp_MSrepl_check_server
sp_MSrepl_FixPALRole
sp_MSreset_attach_state
sp_MSrestore_sub_merge
sp_MSrestore_sub_tran
sp_MSscript_article_view
sp_MSscript_compensating_insert
sp_MSscript_delete_pubwins
sp_MSscript_insert_pubwins
sp_MSscript_insert_statement
sp_MSscript_multirow_trigger
sp_MSscript_params
sp_MSscript_trigger_variables
sp_MSscript_update_pubwins
sp_MSscript_update_statement
sp_MSscriptdb_worker
sp_MSscriptmvastable
sp_MSscriptmvastablenci
sp_MSscriptviewproc
sp_MSSharedFixedDisk
sp_MStable_not_modifiable
sp_MSupdate_mqserver_subdb
sp_MSUpgradeConflictTable
sp_MSverifytranfilter
sp_oledb_column_constraints
sp_populateqtraninfo
sp_publication_validation
sp_refreshsubscriptions
sp_reinitmergepullsubscription
sp_reinitmergesubscription
sp_removesrvreplication
sp_replication_agent_checkup
sp_replqueuemonitor
sp_replsqlqgetrows
sp_resolve_logins
sp_script_insertforcftresolution
sp_script_reconciliation_delproc
sp_script_reconciliation_insproc
sp_script_reconciliation_xdelproc
sp_scriptdelproc
sp_scriptdynamicupdproc
sp_scriptinsproc
sp_scriptmappedupdproc
sp_scriptpkwhereclause
sp_scriptpublicationcustomprocs
sp_scriptpubwinsrefreshcursorvars
sp_scriptreconwhereclause
sp_scriptupdateparams
sp_scriptupdproc
sp_scriptxdelproc
sp_subscription_cleanup
sp_tableswc
sp_unbindefault
sp_unbindrule
sp_updatestats
sp_vupgrade_publisher
sp_vupgrade_registry
sp_vupgrade_replication
sp_vupgrade_replmsdb
sp_vupgrade_subpass
sp_vupgrade_subscription_databases
sp_vupgrade_syscol_status


AMB

"Alonso" wrote:

> > ocurriria abrir un lago usando pico verdad?. Lo mismo pasa con los
> cursores,
> > si el resultado a recorrer usando un cursor es pequeño (pocas filas)


pues
> > claro que un cursor no dañaria mucho el performance de sql server,


pero si
> en
> > cambio hablamos de miles de filas entonces el performance sufrira
>
> Bueno, ya eso es otra cosa. Pero no es el hecho puro y simple de decir


:
> "nunca usar cursores!!!" porque si no se deben usar nunca entonces MS
> debería excluirlos definitivamente del TSQL.
>
>
>
>
>
Respuesta Responder a este mensaje
#7 Alejandro Mesa
10/05/2005 - 14:32 | Informe spam
Alonso,

Eso depende de cuan complejo es la sentencia select asociada, el tipo de
cursor, si vas a utilizar el cursor para actualizar una tabla, etc.


AMB

"Alonso" wrote:

1) Y con unos 500 a 1000 registros la degradacion puede ser significativa
para un cursor ?

2) La degradacion solo es funcion del tamano del cursor ? o tambien depende
de la complejidad del query o sP a ejecutar para cada fila del cursor ?


gracias por la ayuda



"Alejandro Mesa" wrote in message
news:
> Alonso,
>
> > Bueno, ya eso es otra cosa. Pero no es el hecho puro y simple de decir
:
> > "nunca usar cursores!!!" porque si no se deben usar nunca entonces MS
> > debería excluirlos definitivamente del TSQL.
>
> Microsoft no los ha excluido y algunas veces tambien los usa. Por ejemplo,
> en la base de datos master, los siguientes procedimientos almacenados usan
> cursor.
>
> sp_adjustpublisheridentityrange
> sp_bindefault
> sp_bindrule
> sp_change_subscription_properties
> sp_check_removable
> sp_cleanupdbreplication
> sp_convertwebtasks
> sp_copysubscription
> sp_createstats
> sp_databases
> sp_describe_cursor
> sp_describe_cursor_columns
> sp_describe_cursor_tables
> sp_drop_agent_profile
> sp_droparticle
> sp_dropdistributor
> sp_droplogin
> sp_dropmergearticle
> sp_dropmergepublication
> sp_dropmergepullsubscription
> sp_dropmergesubscription
> sp_droppublication
> sp_droppullsubscription
> sp_dropsubscriber
> sp_dropsubscription
> sp_expired_subscription_cleanup
> sp_fulltext_catalog
> sp_fulltext_database
> sp_help_fulltext_catalogs_cursor
> sp_help_fulltext_columns_cursor
> sp_help_fulltext_tables_cursor
> sp_helpconstraint
> sp_helpdb
> sp_helpdistpublisher
> sp_helpdistributiondb
> sp_helpindex
> sp_helplogins
> sp_helpmergearticleconflicts
> sp_helpmergepullsubscription
> sp_helpmergesubscription
> sp_helppublication
> sp_helppullsubscription
> sp_helpreplicationdboption
> sp_helpstats
> sp_helptext
> sp_mergecleanupmetadata
> sp_mergemetadataretentioncleanup
> sp_mergesubscription_cleanup
> sp_MSaddguidindex
> sp_MSadjustmergeidentity
> sp_MSareallcolumnscomputed
> sp_MSarticlecol
> sp_MSchange_retention
> sp_MScleanup_conflict
> sp_MScleanup_conflict_table
> sp_MScleanup_metadata
> sp_MScleanupdynsnapshotvws
> sp_MScleanupmergepublisher
> sp_MScleanuptask
> sp_MScreatebeforetable
> sp_MSdbuseraccess
> sp_MSdefer_check
> sp_MSdelete_specifiedcontents
> sp_MSdrop_6x_replication_agent
> sp_MSdrop_expired_mergesubscription
> sp_MSdrop_expired_subscription
> sp_MSdroparticleconstraints
> sp_MSdropfkreferencingarticle
> sp_MSdropmergedynamicsnapshotjob
> sp_MSenum_replqueues
> sp_MSenum_replsqlqueues
> sp_MSenumallpublications
> sp_MSenumallsubscriptions
> sp_MSenumpubreferences
> sp_MSenumthirdpartypublicationvendornames
> sp_MSexclause
> sp_MSfix_6x_tasks
> sp_MSfixupbeforeimagetables
> sp_MSforeachdb
> sp_MSforeachtable
> sp_MSget_col_position
> sp_MSget_synctran_commands
> sp_MSgetbeforetableinsert
> sp_MSgetcolumnlist
> sp_MSgetviewcolumnlist
> sp_MShelpalterbeforetable
> sp_MShelpcreatebeforetable
> sp_MShelpmergeconflictcounts
> sp_MShelptranconflictcounts
> sp_MSinit_replication_perfmon
> sp_MSinsertbeforeimageclause
> sp_MSisnonpkukupdateinconflict
> sp_MSispkupdateinconflict
> sp_MSload_replication_status
> sp_MSloginmappings
> sp_MSmakedynsnapshotvws
> sp_MSmakeselectproc
> sp_MSpost_auto_proc
> sp_MSprep_exclusive
> sp_MSpropagateschematorepubs
> sp_MSpub_adjust_identity
> sp_MSpublicationcleanup
> sp_MSreenable_check
> sp_MSreinit_failed_subscriptions
> sp_MSreinit_hub
> sp_MSremove_userscript
> sp_MSremovedbreplication
> sp_MSrepl_check_server
> sp_MSrepl_FixPALRole
> sp_MSreset_attach_state
> sp_MSrestore_sub_merge
> sp_MSrestore_sub_tran
> sp_MSscript_article_view
> sp_MSscript_compensating_insert
> sp_MSscript_delete_pubwins
> sp_MSscript_insert_pubwins
> sp_MSscript_insert_statement
> sp_MSscript_multirow_trigger
> sp_MSscript_params
> sp_MSscript_trigger_variables
> sp_MSscript_update_pubwins
> sp_MSscript_update_statement
> sp_MSscriptdb_worker
> sp_MSscriptmvastable
> sp_MSscriptmvastablenci
> sp_MSscriptviewproc
> sp_MSSharedFixedDisk
> sp_MStable_not_modifiable
> sp_MSupdate_mqserver_subdb
> sp_MSUpgradeConflictTable
> sp_MSverifytranfilter
> sp_oledb_column_constraints
> sp_populateqtraninfo
> sp_publication_validation
> sp_refreshsubscriptions
> sp_reinitmergepullsubscription
> sp_reinitmergesubscription
> sp_removesrvreplication
> sp_replication_agent_checkup
> sp_replqueuemonitor
> sp_replsqlqgetrows
> sp_resolve_logins
> sp_script_insertforcftresolution
> sp_script_reconciliation_delproc
> sp_script_reconciliation_insproc
> sp_script_reconciliation_xdelproc
> sp_scriptdelproc
> sp_scriptdynamicupdproc
> sp_scriptinsproc
> sp_scriptmappedupdproc
> sp_scriptpkwhereclause
> sp_scriptpublicationcustomprocs
> sp_scriptpubwinsrefreshcursorvars
> sp_scriptreconwhereclause
> sp_scriptupdateparams
> sp_scriptupdproc
> sp_scriptxdelproc
> sp_subscription_cleanup
> sp_tableswc
> sp_unbindefault
> sp_unbindrule
> sp_updatestats
> sp_vupgrade_publisher
> sp_vupgrade_registry
> sp_vupgrade_replication
> sp_vupgrade_replmsdb
> sp_vupgrade_subpass
> sp_vupgrade_subscription_databases
> sp_vupgrade_syscol_status
>
>
> AMB
>
> "Alonso" wrote:
>
> > > ocurriria abrir un lago usando pico verdad?. Lo mismo pasa con los
> > cursores,
> > > si el resultado a recorrer usando un cursor es pequeño (pocas filas)
pues
> > > claro que un cursor no dañaria mucho el performance de sql server,
pero si
> > en
> > > cambio hablamos de miles de filas entonces el performance sufrira
> >
> > Bueno, ya eso es otra cosa. Pero no es el hecho puro y simple de decir
:
> > "nunca usar cursores!!!" porque si no se deben usar nunca entonces MS
> > debería excluirlos definitivamente del TSQL.
> >
> >
> >
> >
> >



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida