Actualizar valores usando un cursor con T-SQL

by Marc Cortada 19/06/2014

El siguiente ejemplo muestra cómo actualizar valores directamente utilizando un cursor en SQL Server. Lo que hace es sencillo: dada una tabla llamada Tabla1, actualiza el valor de la columna llamada columna1 solo de las filas que sean pares. La idea de este ejemplo podría ser útil para modificar filas de una tabla que tiene repetidos (por decir algo).

Si ya estás familiarizado con T-SQL, te interesan especialmente las líneas 6 y la 23 del ejemplo. Son las que contienen la información clave.

Si quieres copiar y pegar correctamente el código comienza seleccionando el texto del código fuente sin el número de línea.

DECLARE Test CURSOR 
     FOR SELECT
		[columna1]
       ,[columna2]
  FROM [dbo].[Tabla1] 
     FOR UPDATE of columna1;

Declare @col1 as varchar;
Declare @col2 as varchar;
declare @colTest as int;

-- Contaremos en base 1, no en base 0
set @coltest = 1;

OPEN Test

FETCH NEXT FROM Test 
INTO @col1, @col2

WHILE @@FETCH_STATUS = 0
BEGIN
	if (@coltest % 2) = 0
	update [Tabla1] set [columna1] = 'Hola' where current of Test

	set @coltest = @coltest + 1;
FETCH NEXT FROM Test 
    INTO @col1, @col2
END 
CLOSE Test;
DEALLOCATE Test;

Tags:

Categorías: SQLServer | How to | Programación y desarrollo

No se aceptan más comentarios

Entradas por mes