在学生 table 中自动插入卷号的光标
Cursor to auto insert Roll Numbers in student table
如何在单击表格中的分配按钮时按升序从 1、2、3 自动填充学生的 roll number
列?
TABLE
如何调用游标?
我对所有数据库操作都使用存储过程。
示例代码
declare @studID int
declare rollCursor CURSOR FOR
select * from TESTING
OPEN rollCursor
如果你想要一个单一的StudentId,就在你的程序中写
-- Where @StudendId will be parameter to your stored procedure
SELECT * FROM TESTING
WHERE StudId = @StudendId
以下是使用 CURSOR 的方法。但请注意,CURSOR 有性能问题。所以很少用。
DECLARE @StudId INT
DECLARE @FName VARCHAR(50)
DECLARE @ROLL INT
-- Here you declare which all columns you need to loop in Cursor
DECLARE rollCursor CURSOR FOR
select * from TESTING
WHERE StudId = @StudendId
ORDER BY StudId;
OPEN rollCursor
-- Loop starts from here
FETCH NEXT FROM rollCursor
INTO @StudId,@FName,@ROLL
WHILE @@FETCH_STATUS = 0
BEGIN
-- Select studentid one by one from the table
SELECT * FROM TESTING
WHERE StudId = @StudId
-- Fetches next record and increments the loop
FETCH NEXT FROM rollCursor
INTO @StudId,@FName,@ROLL
END
CLOSE rollCursor;
DEALLOCATE rollCursor;
编辑:1(获取 table 的行号)
如果您需要根据 roll
的结果,请使用以下查询
-- This will bring you the records with roll number in ascending order
-- If you want in descending order just change ASC to DESC
SELECT studid,Fname,ROW_NUMBER() OVER(ORDER BY roll ASC) roll
FROM StudId
编辑:2(创建身份字段)
您需要将 roll number 列设置为 Identity field
,即具有整数值的列会在新插入时自动递增值。
将卷号列设置为 Identity field
后,尝试使用以下插入物
INSERT INTO TESTING(StudId,Fname)VALUES(10,'A')
INSERT INTO TESTING(StudId,Fname)VALUES(10,'A')
您不会 select 或在插入中包含卷号列。会自动递增。
- Click here 查看更多身份字段
如何在单击表格中的分配按钮时按升序从 1、2、3 自动填充学生的 roll number
列?
TABLE
如何调用游标? 我对所有数据库操作都使用存储过程。
示例代码
declare @studID int
declare rollCursor CURSOR FOR
select * from TESTING
OPEN rollCursor
如果你想要一个单一的StudentId,就在你的程序中写
-- Where @StudendId will be parameter to your stored procedure
SELECT * FROM TESTING
WHERE StudId = @StudendId
以下是使用 CURSOR 的方法。但请注意,CURSOR 有性能问题。所以很少用。
DECLARE @StudId INT
DECLARE @FName VARCHAR(50)
DECLARE @ROLL INT
-- Here you declare which all columns you need to loop in Cursor
DECLARE rollCursor CURSOR FOR
select * from TESTING
WHERE StudId = @StudendId
ORDER BY StudId;
OPEN rollCursor
-- Loop starts from here
FETCH NEXT FROM rollCursor
INTO @StudId,@FName,@ROLL
WHILE @@FETCH_STATUS = 0
BEGIN
-- Select studentid one by one from the table
SELECT * FROM TESTING
WHERE StudId = @StudId
-- Fetches next record and increments the loop
FETCH NEXT FROM rollCursor
INTO @StudId,@FName,@ROLL
END
CLOSE rollCursor;
DEALLOCATE rollCursor;
编辑:1(获取 table 的行号)
如果您需要根据 roll
的结果,请使用以下查询
-- This will bring you the records with roll number in ascending order
-- If you want in descending order just change ASC to DESC
SELECT studid,Fname,ROW_NUMBER() OVER(ORDER BY roll ASC) roll
FROM StudId
编辑:2(创建身份字段)
您需要将 roll number 列设置为 Identity field
,即具有整数值的列会在新插入时自动递增值。
将卷号列设置为 Identity field
后,尝试使用以下插入物
INSERT INTO TESTING(StudId,Fname)VALUES(10,'A')
INSERT INTO TESTING(StudId,Fname)VALUES(10,'A')
您不会 select 或在插入中包含卷号列。会自动递增。
- Click here 查看更多身份字段