--建表
create table tns
(
id int identity not null,
names varchar(50) not null,
age int not null check(age<25),
guid varchar(50) not null default(newid()),
primary key(id),
)
-- 删除表
drop table tns
--插入数据
declare @count int
set @count=0
while(@count<=20)
begin
insert into tns(names,age) values('Tom'+cast(@count as varchar),@count)
set @count=@count+1
end
select * from tns
--事务具有一致性,在事务里面的操作要么全部完成要么全部失败
/*
格式
begin transaction
SQL语句
end
全局错误变量
@error
它能捕捉上次执行语句出现的错误号,若无错误则返回0
应用:如向1个表插入10条数据,但当插入到第8条时出错了,但此时已经插入了8条了
这就可以通过事务来达到操作处理的一致性
*/
begin transaction
declare @counts int
declare @errors int
set @counts=0
set @errors=0
while(@counts<=30)
begin
insert into tns(names,age)values('Jim'+cast(@counts as varchar),@counts)
set @errors=@errors+@@error--捕捉错误
set @counts=@counts+1--自增
end
if(@errors=0)--若无错误则提交事务
begin
commit--提交事务
print '事务全部处理完成'
end
else
begin
rollback--撤销事务
print '出错了,事务已经回滚'
end
select * from tns--查询
delete tns--删除表数据