Cursor SQLServer
DECLARE @message VARCHAR(100)
DECLARE <curName,,curName> CURSOR FOR
SELECT GETDATE()
--CTRL + Shift + M
OPEN <curName,,curName>
FETCH NEXT FROM <curName,,curName>
INTO @var1
IF @@FETCH_STATUS <> 0 BEGIN
SET @message = 'NO HAR REGISTROS'
PRINT @message
END
WHILE @@FETCH_STATUS = 0 BEGIN
FETCH NEXT FROM <curName,,curName>
INTO @var1
END
CLOSE <curName,,curName>;
DEALLOCATE <curName,,curName>;
--VALIABLES TO USE
DECLARE @registroActual INT = 1;--Contador
DECLARE @numRegistros INT; --Numero registros tabla
DECLARE @col1 VARCHAR(10); --Columna 1 para usar
DECLARE @col2 VARCHAR(10); --Columna 2 para usar
--CREATE TABLE TEMP
CREATE TABLE #tmpTable (
id INT IDENTITY,
col1 VARCHAR(10),
col2 VARCHAR(10)
)
--Se insertan los registros
INSERT INTO #tmpTable(col1,col2)
SELECT 'TE1S', 'TE21' UNION ALL
SELECT 'TE1S', 'TE21' UNION ALL
SELECT 'TE1S', 'TE21' UNION ALL
SELECT 'TE1S', 'TE21' UNION ALL
SELECT 'TE1S', 'TE21'
--Numero Registros de la tabla temporal
SELECT @numRegistros = COUNT(id)
FROM #tmpTable
IF @numRegistros IS NULL OR @numRegistros = 0 BEGIN
PRINT 'NO HAY REGISTROS'
END
--Inicio loop
WHILE @registroActual <= @numRegistros BEGIN
--SELECCION DE REGISTRO ACTUAL
SELECT
@col1 = col1,
@col2 = col2
FROM #tmpTable
WHERE id = @registroActual
--SE EJECUTA STATMENT
PRINT 'Col1: ' + @col1 + ' - Col2: ' + @col2
SET @registroActual = @registroActual + 1
END
DROP TABLE #tmpTable