CREATE FUNCTION SF_UPDATE_SEQVALUE(@seqName varchar(50))
RETURNS integer 
AS  
BEGIN 
  DECLARE @nextValue as integer
  EXEC @nextValue = SP_UPDATE_SEQVALUE @seqName
  RETURN @seqName  --应是return @nextValue 
END函数自身调用??

解决方案 »

  1.   

    to turenjie(拉倒):
    你说的对CREATE FUNCTION SF_UPDATE_SEQVALUE(@seqName varchar(50))
    RETURNS integer 
    AS  
    BEGIN 
      DECLARE @nextValue as integer
      EXEC @nextValue = SP_UPDATE_SEQVALUE @seqName
      RETURN @nextValue
    END执行后报错: 
    服务器: 消息 557,级别 16,状态 2,过程 SF_UPDATE_SEQVALUE,行 7
    只有函数和扩展存储过程才能从函数内部执行。
      

  2.   

    不是递归函数只是一个取得一个键值的函数,这个SF_UPDATE_SEQVALUE返回一个integer类型的值。
    希望在查询语句里使用它,就像下例一样:
    select  *,
            SF_UPDATE_SEQVALUE 'SEQ_TEST' as f_id -- 产生主键
    from a_table