关于 Sql server2000 事务机制中的问题
今天做一个存储过程时出了一个这样的问题,请各位帅哥美女们帮忙解答一下好吗?万分感谢!
有类似以下结构的三张表
用户表:
create table users
( id int identity(1,1) primary key ,
username nchar(15) not null Unique,
[password] nchar(25) not null ,
)
角色表:
create table roles
( id int identity(1,1) primary key ,
rolename nchar(15) not null Unique,
note nchar(100)
)
用户—角色表
create table user_role
( userid int foreign key references users(id),
roleid int foreign key feferences users(id)
)
角色表中有三条记录如下:
insert into roles values( 'admin ', '超级管理员 ')
insert into roles values( 'user ', '普通用户 ')
insert into roles values( 'guest ', '来宾用户 ')
新建用户存储过程:
NewUser:
create procedure NewUser
(
@username nchar(15),
@password nchar(25),
)
as
begin
begin tran add_user
insert into users values(@username,@password)
insert into user_role values(scope_identity(),2)
insert into user_role values(scope_identity(),3)
commit tran add_user
end
以上存储过程编译通过,可是我发现执行的时候,事务不起作用,
如:
exec NewUser 'cccc ', '154645564 '
结果如下:
插入一条新记录 影响1行
插入一条新记录 影响1行
插入一条新记录 影响1行
我再把上面的再执行一次
exec NewUser 'cccc ', '154645564 '
结果如下: