create procedure sinckypro
as
declare @i int,@j int
set @i=1
set @j=0
begin transaction tran_sincky
create table sinckytab(
myid int not null,
myname varchar(10),
mtdesc varchar(50))
save tran save_sincky /*设置保存点*/
while @i<=101
begin
insert into sinckytab values(@i,'sincky','come from 51testing')
set @i=@i+1
set @j=@j+@@rowcount
print @@rowcount
end
select * from sinckytab
if @j!=101
begin
print @j
print '100行数据生成失败'
rollback tran save_sincky /*回滚到事务开始, 当设置成rollback tran save_sincky 执行失败*/
end
else
begin
print '100行数据生成成功'
commit tran tran_sincky
end
exec sinckypro
上面是我帮你改的,可以运行了
@@rowcount返回受上一语句影响的行数 每一次都返回1不会返回所有影响的行数