同意7楼的,下面的也可以:
create table UserInfo
(
UserID int primary key,
UserName char(20) unique,
)
insert into UserInfo (UserID,UserName) values (1,'aa')
insert into UserInfo (UserID,UserName) values (2,'bb')
-------------建立名为InsertUserInfo的存储过程
create procedure InsertUserInfo (@UserID int, @UserName char(20))
as
declare @count int
begin transaction
set @count = 0
select @count = count(*) from UserInfo where UserID = @UserID --用来统计表中要插入数据的数量
if @count > 0 --表示表中含有相同的数据
begin --判断ID重复否
raiserror ('含有该用户ID的用户已存在',16,1)
rollback; --回滚
end
else
begin
select @count = count(*) from UserInfo where UserName = @UserName
if @count > 0
begin --判断用户名重复否
raiserror ('含有该用户名的用户已存在',16,1)
rollback;
end
else --既不存在相同的ID,也不存在相同的用户名,执行插入操作
insert into UserInfo (UserID,UserName) values (@UserID, @UserName)
if @@error <> 0
rollback;
end
select * from UserInfo
commit transaction
---------------建立名为SelectUserInfo的存储过程
create procedure SelectUserInfo
as
begin transaction
select * from UserInfo
if @@error <> 0
rollback;
commit transaction
版本来已经排好,但是一粘贴就乱了。