sql service 存储过程,游标的使用

1、建表

DROP TABLE dbo.users

GO
CREATE TABLE dbo.users (
id int NOT NULL ,
name varchar(32) NULL 
)

GO

ALTER TABLE dbo.users ADD PRIMARY KEY (id)

GO

2、添加数据

--删除存储过程
if (exists (select * from sys.objects where name = 'insert_users'))
    drop proc insert_users
go
--创建存储过程
create proc insert_users as

begin
declare @i int;
set @i = 0;

while @i <100
begin
set @i = @i + 1;
insert into dbo.users values(@i, cast(@i as VARCHAR)+'name');
end

end

--执行存储过程
exec insert_users

3游标的使用

--删除存储过程
if (exists (select * from sys.objects where name = 'my_proc_cursor'))
    drop proc my_proc_cursor
go
--创建存储过程
create proc my_proc_cursor as

begin
DECLARE @id int,@name VARCHAR(32);
--定义游标
declare my_cursor CURSOR for select top 10 * from dbo.users;
--打开游标
open my_cursor;
--首次填充数据
FETCH NEXT FROM my_cursor into @id, @name;


--假如检索到了数据,才处理
  WHILE @@fetch_status = 0
BEGIN
select @id, @name;
--再次填充数据,(相当于i=i+1的操作)
FETCH NEXT FROM my_cursor into @id, @name;
END

end

--执行存储过程
exec my_proc_cursor

posted @ 2022-09-23 18:03  silentmuh  阅读(106)  评论(0编辑  收藏  举报
Live2D