请问自定义函数内的UPDATE语句问题
我写了一个自定义函数,用于将一个列的值自增1并返回原先的值
CREATE FUNCTION dist_getid (
@idname as char(10))
RETURNS int
AS
BEGIN
declare @oldid int
declare @newid int
select @oldid = IDVALUE from MAXID
where IDNAME = @idname
select @newid = @oldid + 1
update MAXID set IDVALUE = @newid
where IDNAME = @idname
return (@oldid)
END
但是在语法检查时说不正确的使用了update语句,去掉那个update语句后能通过语法检查。而同样的内容如果是存储过程就没有错。请问这是怎么回事,我应该怎样写这个函数?
表只有两列
create table MAXID(
IDNAME char(10),
IDVALUE int,
primary key(IDNAME)
)