CREATE FUNCTION NextID  (@tblName nvarchar(100))  
RETURNS char(10)
AS
BEGIN
Declare @Temp char(10)
Select @Temp = 'Select Max(ID) from '+@tblName
return @Temp
END

解决方案 »

  1.   

    如果你要在存储过程中运行得到结果的话CREATE FUNCTION NextID  (@tblName nvarchar(100))  
    @Temp char(10) output
    AS
    BEGIN
    Declare @Temp char(10)
    Select @Temp = 'Select Max(ID) from '+@tblName
    exec @Temp 
    END
      

  2.   

    这样:
    CREATE FUNCTION NextID  (@tblName nvarchar(100))  
    RETURNS char(10)
    AS
    BEGIN
    Declare @Temp char(10)
    Select @Temp = EXEC('Select Max(ID) from '+@tblName)
    return @Temp
    END
      

  3.   

    sorry,更正一下,我以为你是在存储过程里用呢
    如果你要在存储过程中运行得到结果的话
    CREATE proc NextID  @tblName nvarchar(100),
    @Temp char(10) output
    AS
    BEGIN
    Declare @Temp char(10)
    Select @Temp = 'Select Max(ID) from '+@tblName
    exec @Temp 
    END函数
    CREATE FUNCTION NextID  (@tblName nvarchar(100))  
    RETURNS char(10)
    AS
    BEGIN
    Declare @Temp char(10)
    Select @Temp = 'Select Max(ID) from '+@tblName
    exec @Temp
    return @Temp
    END
      

  4.   

    CREATE FUNCTION f_maxID  (@tblName nvarchar(100))  
    RETURNS char(10)
    AS
    BEGIN
    Declare @Temp char(10),@slqstr varchar(300)
    Select @sqlstr = 'select Max(ID) as maxid into #temptable1 from '+@tblName
    exec @sqlstr
    select @temp = maxid from #temptable1
    drop table #temptable1
    return @Temp
    END
      

  5.   

    在函数中不能用 exec select @Temp='select Max(ID) from '+@tblName
      

  6.   

    只能利用存储过程来实现
    Create proc NextID  @tblName nvarchar(100),
    @Temp char(100) output
    AS
    BEGIN
    set @Temp = 'Select Max(ID) from '+@tblName
    exec(@Temp)
    ENDdeclare @result varchar(100)
    exec up_NextID 'tablename',@result output
    print @result
      

  7.   

    Create proc NextID  @tblName nvarchar(100),
    @Temp char(100) output
    AS
    BEGIN
    set @Temp = 'Select Max(ID) from '+@tblName
    exec(@Temp)
    END
      

  8.   

    BEGIN
    set @Temp = 'Select Max(ID) from '+@tblName
    exec(@Temp)
    END
      

  9.   

    set @Temp = 'Select Max(ID) from '+@tblName
    exec(@Temp)
      

  10.   

    CREATE FUNCTION NextID  (@tblName nvarchar(100))  
    RETURNS char(10)
    AS
    BEGIN
       Set @tblName='Spda'
       Declare @Temp char(10),@SqlTxt VarChar(1000)
    Set @SqlTxt='Select @Temp=Max(Jhj) from '+@tblName
    Exec sp_executesql N@Sqltxt,N'@level tinyint',@level=35
    return @temp
    END