请问自定义函数内的UPDATE语句问题

han.bingtao 2004-02-16 02:51:38
我写了一个自定义函数,用于将一个列的值自增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)
)
...全文
47 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧