sql中存储过程和游标简单示例
2013-06-14 17:24
387 查看
--创建存储过程 sp_tittles IF EXISTS(SELECT * FROM sys.objects WHERE type='p' AND name='sp_titles') DROP PROC sp_titles GO CREATE PROC sp_titles AS DECLARE @ProblemID int,@TitleID int,@item int --声明一个游标 DECLARE cursor_title CURSOR FOR SELECT [pid],[id] FROM [tb_titles] --打开游标 OPEN cursor_title --提取游标第一行 FETCH NEXT FROM cursor_title INTO @ProblemID,@TitleID --循环提取游标内容 WHILE @@FETCH_STATUS=0 BEGIN IF EXISTS( SELECT * FROM [tb_ProblemIndex] WHERE [ProblemID]=@ProblemID) BEGIN SELECT TOP 1 @item=[id] FROM [tb_titles] WHERE [pid]=@ProblemID ORDER BY createtime DESC UPDATE [tb_ProblemIndex] SET [TitleID] = @item WHERE [ProblemID]=@ProblemID END ELSE INSERT INTO [tb_ProblemIndex]([ProblemID],[TitleID]) VALUES(@ProblemID,@TitleID) FETCH NEXT FROM cursor_title INTO @ProblemID,@TitleID END --关闭游标 CLOSE cursor_title --释放游标资源 DEALLOCATE cursor_title GO --存储过程 sp_titles 结束 --执行存储过程 sp_titles EXEC sp_titles --创建存储过程 sp_answers IF EXISTS(SELECT * FROM sys.objects WHERE type='p' AND name='sp_answers') DROP PROC sp_answers GO CREATE PROC sp_answers AS DECLARE @ProblemID int,@AnswerID int --声明一个游标 DECLARE cursor_answer CURSOR FOR SELECT [pid],[id] FROM [tb_answers] --打开游标 OPEN cursor_answer --提取游标第一行内容 FETCH NEXT FROM cursor_answer INTO @ProblemID,@AnswerID --循环提取游标内容 WHILE @@FETCH_STATUS=0 BEGIN UPDATE [tb_ProblemIndex] SET [AnswerID]=@AnswerID WHERE [ProblemID]=@ProblemID FETCH NEXT FROM cursor_answer INTO @ProblemID,@AnswerID END --关闭游标 CLOSE cursor_answer --释放游标资源 DEALLOCATE cursor_answer GO --存储过程 sp_answers 结束 --执行存储过程 sp_answers EXEC sp_answers
相关文章推荐
- oracle中函数和存储过程简单示例-动态sql
- 一个简单的SQL游标示例的存储过程
- 最简单的SQL存储过程调用(不会存储过程的人非常值得看,很有实际意义)
- SQL使用DOS命令建库。建表,添加约束,标量值函数,存储过程,触发器,游标
- sql 取代游标的写法示例
- sqlserver 游标的简单示例
- SQL游标(cursor)详细说明及内部循环使用示例
- oracle9i存储过程、触发器、函数简单实例(基于PL/SQL7.1)
- Oracle 笔记(八)、PL/SQL 高级应用(游标、存储过程、函数、程序包)
- PL/SQL 游标和存储过程
- sql语句中"case when"的简单用法示例
- SQLSERVER 游标使用简单示例
- Oracle 笔记(八)、PL/SQL 高级应用(游标、存储过程、函数、程序包)
- SQL游标的简单实例
- 一个sql的存储过程的简单示例
- 通过编译luaSQL调用ODBC连接Access以及给OpenResty(LuaJIT)编写简单的C扩展示例
- SQL 游标(最简单的游标说明)
- SQL中游标的使用示例
- 一个简单的存储过程(实现事务执行两个sql语句,修改可实现执行更多条sql语句)
- SQL 游标 一个简单的例子