Tạo con trỏ sql server

* Cursor 1 table SQL

Declare @Cot1 nvarchar(50)
Declare @Cot2 nvarchar(50)

DECLARE Ten_cursor CURSOR FOR
SELECT Cot1,Cot2
FROM TenTable
WHERE ...

OPEN Ten_cursor

FETCH NEXT FROM Ten_cursor
INTO  @Cot1,@Cot2

WHILE @@FETCH_STATUS = 0
BEGIN
 
    print '   ' + CAST(@Cot1 as varchar(50))

    FETCH NEXT FROM Ten_cursor
    INTO @Cot1,@Cot2
    
END
CLOSE Ten_cursor ;
DEALLOCATE Ten_cursor ;

 

* Cursor table lồng table SQL

USE [HoSo]
GO
/****** Object:  StoredProcedure [dbo].[vdCursor2]    Script Date: 05/04/2023 20:35:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
-- =============================================
-- [dbo].[vdCursor3]

ALTER PROCEDURE [dbo].[vdCursor3]
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
Declare @Lop nvarchar(50)
Declare @TenLop nvarchar(50)


Declare @Child_ID int
Declare @Child_Ten nvarchar(50)
Declare @Child_Lop nvarchar(50)
Declare @Child_Diem int


DECLARE Lop_cursor CURSOR FOR
SELECT Lop,TenLop
FROM tbLop

OPEN Lop_cursor

FETCH NEXT FROM Lop_cursor
INTO @Lop, @TenLop

WHILE @@FETCH_STATUS = 0
BEGIN
 
    print '   ' + CAST(@TenLop as varchar(50))
    --print '   ' + @Diem
    -- Start CHILD CURSOR
    DECLARE HoSo_cursor CURSOR FOR
    SELECT ID,Ten,Lop,Diem
    FROM tbHoSo Where Lop=@Lop

    OPEN HoSo_cursor

    FETCH NEXT FROM HoSo_cursor
    INTO @Child_ID, @Child_Ten,@Child_Lop,@Child_Diem

    WHILE @@FETCH_STATUS = 0
    BEGIN
 
        print '            -' + CAST(@Child_Ten as varchar(50))
        --print '   ' + @Diem
        --   

        --
        FETCH NEXT FROM HoSo_cursor
        INTO @Child_ID, @Child_Ten,@Child_Lop,@Child_Diem
    
    END
    CLOSE HoSo_cursor ;
    DEALLOCATE HoSo_cursor ;
    
    -- End CURSOR CHILD
    FETCH NEXT FROM Lop_cursor
    INTO @Lop, @TenLop
    
END
CLOSE Lop_cursor ;
DEALLOCATE Lop_cursor ;



END