下面是一个游标的实例,方便初学者学习,也可以防止自己忘记 。
IF EXISTS(SELECT 1 FROM SYSOBJECTS WHERE [NAME] = 'HEHE')
DROP PROCEDURE HEHE
GO
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE HEHE
AS
BEGIN
--创建游标
DECLARE XQYG_ZS_CURSOR CURSOR local SCROLL DYNAMIC --声明一个可循环操作的游标
FOR SELECT [NAME] FROM tableName
OPEN XQYG_ZS_CURSOR --打开游标
DECLARE @WORDS_LIST SYSNAME --词汇
FETCH NEXT FROM XQYG_ZS_CURSOR INTO @WORDS_LIST --游标移到第一个记录
WHILE(@@FETCH_STATUS = 0) --检查游标是不是最后一个,如果不是则进行中间的程序
BEGIN
--一段处理程序段
insert into testHe(id,[name],[password],[address])
values('1','jj','963',@WORDS_LIST)
FETCH NEXT FROM XQYG_ZS_CURSOR INTO @WORDS_LIST --游标移到下一个记录
END
CLOSE XQYG_ZS_CURSOR --关闭游标
DEALLOCATE XQYG_ZS_CURSOR --释放游标
end
--exec HEHE
--select * from testHe
IF EXISTS(SELECT 1 FROM SYSOBJECTS WHERE [NAME] = 'HEHE')
DROP PROCEDURE HEHE
GO
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE HEHE
AS
BEGIN
--创建游标
DECLARE XQYG_ZS_CURSOR CURSOR local SCROLL DYNAMIC --声明一个可循环操作的游标
FOR SELECT [NAME] FROM tableName
OPEN XQYG_ZS_CURSOR --打开游标
DECLARE @WORDS_LIST SYSNAME --词汇
FETCH NEXT FROM XQYG_ZS_CURSOR INTO @WORDS_LIST --游标移到第一个记录
WHILE(@@FETCH_STATUS = 0) --检查游标是不是最后一个,如果不是则进行中间的程序
BEGIN
--一段处理程序段
insert into testHe(id,[name],[password],[address])
values('1','jj','963',@WORDS_LIST)
FETCH NEXT FROM XQYG_ZS_CURSOR INTO @WORDS_LIST --游标移到下一个记录
END
CLOSE XQYG_ZS_CURSOR --关闭游标
DEALLOCATE XQYG_ZS_CURSOR --释放游标
end
--exec HEHE
--select * from testHe