sql里数据类型 varchar 转换为 int 时出错,请教下面的题那里错了,求救

alterprocuserinfoaddnew(@hhvarchar(100),@jjvarchar(100),@kkvarchar(10),@lldatetime,@i... alter proc userinfoaddnew
(@hh varchar(100),
@jj varchar(100),
@kk varchar(10),
@ll datetime,
@id int output,
@mm char(10)
)
as
declare @nerror int
begin transaction

insert userinfo
values(@hh,@jj,@kk,@ll,@mm)
select @nerror=@@error
if @nerror=0
begin
select @id=max(用户编号)from userinfo
raiserror('以更新',16,10)
end
else
begin
if @nerror=2627
rollback transaction
raiserror('用户名以存在',16,10)
end
commit transaction
创建以上存储器后,。我就执行declare @id int
exec userinfoaddnew 'hzy','123','汪','2008-5-23 21:37','普通员',@id output
它说将数据类型 varchar 转换为 int 时出错
我想知是那错了.请教个位好人.
展开
 我来答
gloomyd
2008-05-25 · TA获得超过186个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:207万
展开全部
if @nerror=2627
rollback transaction
raiserror('用户名以存在',16,10)
end
commit transaction

有错误就回滚 没错误提交 但是你这里 有错误后 回滚了操作 之后又会继续执行commit
所以你应该改为
if @nerror=2627
rollback transaction
raiserror('用户名以存在',16,10)
end
else
commit transaction
我也没仔细看 应该是这里错误了吧!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式