Cursor en trigger

08/10/2004 - 02:36 por Ton | Informe spam
Hola a todos, tengo el siguiente problema cuando uso un
CURSOR FOR UPDATE en un trigger:

Proceso:
Cuando trato de usar los valores de las tablas "inserted"
o "deleted" para actualizar el valor de otra tabla
diferente o la misma que originó el trigger me envia el
siguiente error: "FOR UPDATE CANNOT BE SPECIFIED ON A
READ ONLY CURSOR. Error 16957. Severity 16". Este
problema solo ocurre en SQL Server 2000, ya que en la
versión 7 no se presenta.

Espero que alguien pueda ayudarme. Gracias y saludos

Preguntas similare

Leer las respuestas

#1 MAXI
08/10/2004 - 02:45 | Informe spam
Ton, lamento no ayudarte especificamente con tu consulta pero.

Cursores + triggers son un muy mal matrimonio ;-)

Sql-Server no esta pensado para trabajar con cursores, este tipo de tecnicas
hacen muy lento al motor. Claro los developer estan muy acostumbrados a
utilizar cursores. Casi todo se puede hacer sin estos cursores, lo que
sucede que puede llegar a ser mas complicado de escribir, pero lo que se
busca es que nuestro motor de BDD (un recurso costoso en toda organizacion)
este lo mas seguro y optimo posible!!

Porque no hacemos una cosa: Contanos que queres hacer (y no como lo estas
haciendo) y desde aqui te ayudaremos a armar la mejor sentencia posible y
eliminar ese cursor!!!

Un abrazo




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar

Msn Messager:

"Ton" escribió en el mensaje
news:1e5301c4acce$df3b1c50$
Hola a todos, tengo el siguiente problema cuando uso un
CURSOR FOR UPDATE en un trigger:

Proceso:
Cuando trato de usar los valores de las tablas "inserted"
o "deleted" para actualizar el valor de otra tabla
diferente o la misma que originó el trigger me envia el
siguiente error: "FOR UPDATE CANNOT BE SPECIFIED ON A
READ ONLY CURSOR. Error 16957. Severity 16". Este
problema solo ocurre en SQL Server 2000, ya que en la
versión 7 no se presenta.

Espero que alguien pueda ayudarme. Gracias y saludos
Respuesta Responder a este mensaje
#2 Rossy P
08/10/2004 - 13:23 | Informe spam
Los cursores deberian eliminarlos de sql server porque segun veo nadie los
recomienda. :))



"MAXI" wrote in message
news:%
Ton, lamento no ayudarte especificamente con tu consulta pero.

Cursores + triggers son un muy mal matrimonio ;-)

Sql-Server no esta pensado para trabajar con cursores, este tipo de


tecnicas
hacen muy lento al motor. Claro los developer estan muy acostumbrados a
utilizar cursores. Casi todo se puede hacer sin estos cursores, lo que
sucede que puede llegar a ser mas complicado de escribir, pero lo que se
busca es que nuestro motor de BDD (un recurso costoso en toda


organizacion)
este lo mas seguro y optimo posible!!

Porque no hacemos una cosa: Contanos que queres hacer (y no como lo estas
haciendo) y desde aqui te ayudaremos a armar la mejor sentencia posible y
eliminar ese cursor!!!

Un abrazo




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar

Msn Messager:

"Ton" escribió en el mensaje
news:1e5301c4acce$df3b1c50$
Hola a todos, tengo el siguiente problema cuando uso un
CURSOR FOR UPDATE en un trigger:

Proceso:
Cuando trato de usar los valores de las tablas "inserted"
o "deleted" para actualizar el valor de otra tabla
diferente o la misma que originó el trigger me envia el
siguiente error: "FOR UPDATE CANNOT BE SPECIFIED ON A
READ ONLY CURSOR. Error 16957. Severity 16". Este
problema solo ocurre en SQL Server 2000, ya que en la
versión 7 no se presenta.

Espero que alguien pueda ayudarme. Gracias y saludos


Respuesta Responder a este mensaje
#3 SqlRanger
09/10/2004 - 00:04 | Informe spam
No deberían eliminarse porque hay cosas (aunque muy pocas) que no se pueden
hacer de otra manera.

Saludos:

Jesús Lopez
MVP

"Rossy P" escribió en el mensaje
news:
Los cursores deberian eliminarlos de sql server porque segun veo nadie los
recomienda. :))



"MAXI" wrote in message
news:%
> Ton, lamento no ayudarte especificamente con tu consulta pero.
>
> Cursores + triggers son un muy mal matrimonio ;-)
>
> Sql-Server no esta pensado para trabajar con cursores, este tipo de
tecnicas
> hacen muy lento al motor. Claro los developer estan muy acostumbrados a
> utilizar cursores. Casi todo se puede hacer sin estos cursores, lo que
> sucede que puede llegar a ser mas complicado de escribir, pero lo que se
> busca es que nuestro motor de BDD (un recurso costoso en toda
organizacion)
> este lo mas seguro y optimo posible!!
>
> Porque no hacemos una cosa: Contanos que queres hacer (y no como lo


estas
> haciendo) y desde aqui te ayudaremos a armar la mejor sentencia posible


y
> eliminar ese cursor!!!
>
> Un abrazo
>
>
>
>
> Maxi
>
> Buenos Aires - Argentina
> Desarrollador .NET 3 Estrellas
> Microsoft User Group (MUG)
> Mail: Maxi_accotto[arroba]speedy.com.ar
>
> Msn Messager:
>
> "Ton" escribió en el mensaje
> news:1e5301c4acce$df3b1c50$
> Hola a todos, tengo el siguiente problema cuando uso un
> CURSOR FOR UPDATE en un trigger:
>
> Proceso:
> Cuando trato de usar los valores de las tablas "inserted"
> o "deleted" para actualizar el valor de otra tabla
> diferente o la misma que originó el trigger me envia el
> siguiente error: "FOR UPDATE CANNOT BE SPECIFIED ON A
> READ ONLY CURSOR. Error 16957. Severity 16". Este
> problema solo ocurre en SQL Server 2000, ya que en la
> versión 7 no se presenta.
>
> Espero que alguien pueda ayudarme. Gracias y saludos
>
>


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