哪位大侠告诉我,到底这个存储过程该怎么改啊!!!
小弟写了个存储过程,
可执行的时候总是报错,
哪位大侠仁慈一下,帮忙给改一下啊.
谢谢了啊!!!!
create proc useradd
(
@user_name varchar(20),
@user_pwd varchar(20),
@object_id varchar(8),
@user_power char(1)
)as
( declare @@uid int
set @uid=0
SELECT TOP 1 @uid=user_id
FROM tcm_user
order by user_id desc
@uid=@uid+1
select user_id from tcm_user
insert tcm_user
(user_name,user_pwd,object_id,user_power)
values
(@user_name,@user_pwd,@object_id+str(@uid),@user_power)
)
------解决方案--------------------try
create proc useradd
(
@user_name varchar(20),
@user_pwd varchar(20),
@object_id varchar(8),
@user_power char(1)
)as
(
insert tcm_user
([user_name],user_pwd,[object_id],user_power)
select TOP 1
@user_name,@user_pwd,@object_id+Rtrim([user_id] + 1), @user_power
FROM tcm_user
order by user_id desc
)
------解决方案--------------------create proc useradd
(
@user_name varchar(20),
@user_pwd varchar(20),
@object_id varchar(8),
@user_power char(1)
)as
( declare @uid int
set @uid=0
SELECT TOP 1 @uid=user_id
FROM tcm_user
order by user_id desc
SET @uid=@uid+1
select user_id from tcm_user
insert tcm_user
(user_name,user_pwd,object_id,user_power)
values
(@user_name,@user_pwd,@object_id+str(@uid),@user_power)
)
------解决方案--------------------alter proc useradd
@user_name varchar(20),
@user_pwd varchar(20),
@object_id varchar(8),
@user_power char(1)
as
declare @uid int
set @uid=0
SELECT TOP 1 @uid=user_id FROM tcm_user order by user_id desc
set @uid=@uid+1
select user_id from tcm_user
insert tcm_user
(user_id , user_name , user_pwd , object_id , user_power)
values
(@uid , @user_name , @user_pwd , @object_id + str(@uid) , @user_power)
另外,@object_id + str(@uid),会造成“将截断字符串或二进制数据。语句已终止。”的错误,是你object_id字段太小的原因