CURSOR ACTUALIZABLE POR DEFECTO

20/05/2004 - 13:57 por Jomaweb | Informe spam
¿no se supone que todos los cursores de SQL Server 2000 son actualizables
por defecto?
Tengo un cursor declarado así:

DECLARE MICURSOR CURSOR FOR

select id,cliente from contratos for update of cliente
open micursor
fetch micursor into @ident,@ncliente
while (@@fetch_status=0)
begin
realiza operaciones
fetch micursor into @ident,@ncliente
end
close micursor
deallocate micursor


pero al ejecutarlo me dice: "No se puede especificar FOR UPDATE en un cursor
READ ONLY."

¿cuál es el error de configuración o declaración, porque yo no lo veo?
 

Leer las respuestas

#1 Liliana Sorrentino
20/05/2004 - 14:30 | Informe spam
Hola,
¿Estás seguro de que la operación que intentás realizar sólo pude hacerse a
través de cursores?
Sería interesante que lo reconsideraras o contaras lo que necesitás hacer
para ver si podemos sugerirte otra opción.

Pero si estás decidido a hacerlo así, este ejemplo funciona.
Saludos... Liliana. (espero no perder mi membresía de la Brigada
AntiCursores)

CREATE TABLE #test
(ident smallint,
ncliente smallint)
INSERT #test SELECT 1, 10
INSERT #test SELECT 2, 20
INSERT #test SELECT 3, 30
INSERT #test SELECT 4, 40

DECLARE @ident smallint, @ncliente smallint
DECLARE MICURSOR CURSOR FOR
SELECT ident, ncliente FROM #test
OPEN micursor
FETCH micursor INTO @ident,@ncliente
WHILE (@@fetch_status=0)
BEGIN
UPDATE #test SET ncliente = @ncliente + 1 WHERE CURRENT OF micursor
FETCH micursor INTO @ident,@ncliente
END
CLOSE micursor
DEALLOCATE micursor

SELECT * from #test


"Jomaweb" escribió en el mensaje
news:

¿no se supone que todos los cursores de SQL Server 2000 son actualizables
por defecto?
Tengo un cursor declarado así:

DECLARE MICURSOR CURSOR FOR

select id,cliente from contratos for update of cliente
open micursor
fetch micursor into @ident,@ncliente
while (@@fetch_status=0)
begin
realiza operaciones
fetch micursor into @ident,@ncliente
end
close micursor
deallocate micursor


pero al ejecutarlo me dice: "No se puede especificar FOR UPDATE en un


cursor
READ ONLY."

¿cuál es el error de configuración o declaración, porque yo no lo veo?


Preguntas similares