Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Cursores de SQL

Estas en el tema de Cursores de SQL en el foro de Bases de Datos General en Foros del Web. estoy utilizando un cursor en un servidor de SQL server, llamado MASTER, vinculado a otro servidor... cuando ejecuto el cursor en el otro servidor no ...
  #1 (permalink)  
Antiguo 12/11/2004, 11:01
 
Fecha de Ingreso: marzo-2004
Mensajes: 23
Antigüedad: 20 años, 8 meses
Puntos: 0
Cursores de SQL

estoy utilizando un cursor en un servidor de SQL server, llamado MASTER, vinculado a otro servidor... cuando ejecuto el cursor en el otro servidor no me muestra ningun error, solamente cuando lo ejecuto en MASTER vinculado con este servidor....

la bronca es que tengo que ejecutar el cursor en el MASTER porque ahi ejectuto unas funciones SP...

el error que muestra es:

Remote tables are not updatable. Updatable keyset-driven cursors on remote tables require a transaction with the REPEATABLE_READ or SERIALIZABLE isolation level spanning the cursor.

Agradecere de cmuho su ayuda...
saludos..
  #2 (permalink)  
Antiguo 12/11/2004, 15:51
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 7 meses
Puntos: 25
¿Puedes editar registros del servidor remoto si lo haces manualmente desde query analyzer (no directamente, sino desde MASTER)?

Tambien prueba colocando SET XACT_ABORT ON al principio de tu Stored Procedure.

Tambien prueba utilizar transacciones para que todo sea una sola operacion logica, ahi puedes especificar la opcion que te dice el mensaje
Código:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
...
COMMIT TRANSACTION
Tambien lee los Books online, tienen cosas como esta:
Cita:
BEGIN DISTRIBUTED TRANSACTION
Specifies the start of a Transact-SQL distributed transaction managed by Microsoft Distributed Transaction Coordinator (MS DTC).

Syntax
BEGIN DISTRIBUTED TRAN [ SACTION ]
[ transaction_name | @tran_name_variable ]

Arguments
transaction_name

Is a user-defined transaction name used to track the distributed transaction within MS DTC utilities. transaction_name must conform to the rules for identifiers but only the first 32 characters are used.

@tran_name_variable

Is the name of a user-defined variable containing a transaction name used to track the distributed transaction within MS DTC utilities. The variable must be declared with a char, varchar, nchar, or nvarchar data type.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 12/11/2004, 16:07
 
Fecha de Ingreso: marzo-2004
Mensajes: 23
Antigüedad: 20 años, 8 meses
Puntos: 0
Muchas gracias Mithrandir ya había encontrado esa solucion del isolation...

Pero como es un cursor, y dentro de ese cursor ejecuto una funcion que se encuentra en un SP, lo que te puedo preguntar ahora es... ¿dentro del Isolation level pongo mi cursor y además la función?
  #4 (permalink)  
Antiguo 15/11/2004, 16:22
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 7 meses
Puntos: 25
Asi es, la idea de la transaccion es que englobe todo lo que sea considerado "una sola operacion logica".
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:36.