declare @Variant0 integerdeclare @sql nvarchar(500)
set @sql='select  @variant0 = max('+@para1+') from '+@para0
exec sp_executesql @sql,N'@Variant0 integer output',@Variant0 output
select @Variant0 

解决方案 »

  1.   

    create proc mrp_getmax
         @para0 char(20),--表名
    @para1 char(15),--字段名
    @para2 text  ----不能定义TEXT类型的变量
     AS
    declare @Variant0 integer  ---INT类型的定是:declare @variant0 int
    select  @variant0 = max(@para1) from @para0  --表名不能直接用,要用动态SQL来执行。
      

  2.   

    create proc mrp_getmax
         @para0 char(20),--表名
    @para1 char(15),--字段名
    @para2 text
     AS
    declare @Variant0 int
             declare @str nvarchar(1000)       set @str='select  @variant0 = max('+ @para1+ ') from  '+ @para0       exec sp_executesql  @str ,N'@variant0 int output',@variant0 output       select @variant0
      

  3.   

    select @variant0 = max(@para1)+@what+  @tabname
    exec sp_executesql @variant0
      

  4.   

    create proc mrp_getmax
         @para0 char(20),--表名
    @para1 char(15),--字段名
    @para2 text
     AS
    exec ('select max('+@para1+') from '+@para0)