DECLARE @TempTable AS TABLE (Id INT, [Name] VARCHAR(200));
INSERT INTO @TempTable
VALUES (1,'Test Name1'),
(2,'Test Name2'),
(3,'Test Name2')
DECLARE
@Id INT,
@Name VARCHAR(200);
DECLARE cursor_personInfo CURSOR
FOR SELECT
Id,
[Name]
FROM
@TempTable;
OPEN cursor_personInfo;
FETCH NEXT FROM cursor_personInfo INTO
@Id,
@Name;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT CONVERT(VARCHAR(10),@Id) +' '+ @Name;
FETCH NEXT FROM cursor_personInfo INTO
@Id,
@Name;
END;
CLOSE cursor_personInfo;
DEALLOCATE cursor_personInfo;
/*
Declare – Declares the cursor with a name and the select statement which populates the result set
Open – Opens a cursor and populates the cursor by executing the select statement which is specified while declaring a cursor
Fetch – To retrieve a specific row from the cursor based on the fetch arguments like NEXT, FIRST, LAST, etc
Close – Closes the current result set of SQL Server cursor and can be reopened
Deallocate – Removes cursor reference and releases all the resources associated with a cursor
*/
/* DECLARA EL CURSOR PARA EL id de product */
/* Y CARGA EN MEMORIA */
DECLARE ProdId CURSOR FOR SELECT id FROM product
/* DECLARA VARIABLE DONDE SE ALMACENARA */
DECLARE @identificador INT
/* UTILITZA EN MEMORIA*/
OPEN ProdId
/* AGAFA EL PRIMER VALOR */
FETCH next FROM ProdInfo INTO @identificador
WHILE @@fetch_status = 0
BEGIN
PRINT @identificador
FETCH NEXT FROM ProdId INTO @identificador
END
/* TANCA UTILITZACIO */
CLOSE ProdId
/* ELIMINA DE MEMORIA */
DEALLOCATE ProdId
/*
Declare – Declares the cursor with a name and the select statement which populates the result set
Open – Opens a cursor and populates the cursor by executing the select statement which is specified while declaring a cursor
Fetch – To retrieve a specific row from the cursor based on the fetch arguments like NEXT, FIRST, LAST, etc
Close – Closes the current result set of SQL Server cursor and can be reopened
Deallocate – Removes cursor reference and releases all the resources associated with a cursor
*/
ECLARE @TempTable AS TABLE (Id INT, [Name] VARCHAR(200));
INSERT INTO @TempTable
VALUES (1,'Test Name1'),
(2,'Test Name2'),
(3,'Test Name2')
DECLARE
@Id INT,
@Name VARCHAR(200);
DECLARE cursor_personInfo CURSOR
FOR SELECT
Id,
[Name]
FROM
@TempTable;
OPEN cursor_personInfo;
FETCH NEXT FROM cursor_personInfo INTO
@Id,
@Name;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT CONVERT(VARCHAR(10),@Id) +' '+ @Name;
FETCH NEXT FROM cursor_personInfo INTO
@Id,
@Name;
END;
CLOSE cursor_personInfo;
DEALLOCATE cursor_personInfo;
DECLARE @CONTACTID INT
--will need to declare at least one variable
--in this case, to store values when iterating through cursor
DECLARE SIMPLE_CURSOR CURSOR FOR
SELECT ID
FROM CONTACT
OPEN SIMPLE_CURSOR
FETCH NEXT FROM SIMPLE_CURSOR --Start the cursor
INTO @CONTACTID
WHILE @@FETCH_STATUS = 0 --while there is a loaded record, keep processing
BEGIN
--do whatever you need to do
print ('This is where the magic happens!
Do whatever you need to do (update/insert/delete/stored proc/etc.')
FETCH NEXT FROM SIMPLE_CURSOR INTO @CONTACTID --fetch next record
END
CLOSE SIMPLE_CURSOR --close and deallocate
DEALLOCATE SIMPLE_CURSOR