向表中插入100条数据
create procedure [dbo].[addUser]
as
declare @i int
set @i=0
while @i<100
begin
insert into UserLogin(userid,username,usertype)
values('test'+cast(@i as varchar),'test','normal')
set @i=@i+1;
end
1.如果遇到“必须是批处理中仅有的语句”报错
则在最前面加一个go,如下:
2.执行存储过程
(1) 不带参数的存储过程:exec JC_GetXSKCCJ
(2)带参数的存储过程:
exec JC_GetXSKCCJ @StudentId = '06620170103'
或者
exec JC_GetXSKCCJ '06620170103'
3.带游标
begin
declare @id varchar(5);--先是声明变量
declare @name varchar(max);
declare @FullName varchar(5);
DECLARE test CURSOR FOR --创建游标test,stock 某表
select s.TypeID,s.Name,s.FullName from BrandType_Test s --这里是需要操作的数据
--打开游标
OPEN test
FETCH NEXT FROM test INTO @id,@name,@FullName --这里和for 循环的初始化类似->i=0 注意into 后面跟的变量 要和取得的列的数目对应
while @@FETCH_STATUS =0 --提取数据的状态,游标读取下一条数据是否成功
begin
print @id
print @name
FETCH NEXT FROM test INTO @id,@name,@FullName-- 类似->i++
end
--关闭游标
CLOSE test
--释放资源
DEALLOCATE test
end
(*注意: @@FETCH_STATUS
0 FETCH 语句成功 -1 FETCH 语句失败或此行不在结果集中 -2 被提取的行不存在 )