CREATE PROCEDURE GetMaxID
@tablename [varchar](255),
@RecordID int output

AS 
exec sp_executesql N'select  @RecordID=count(*) from  @tablename',N'@tablename varchar(255),@recordID int output',@tablename,@recordid output   --try

解决方案 »

  1.   

    TRY:CREATE PROCEDURE GetMaxID
    @tablename [varchar](255),
    @RecordID int output

    AS 
    declare @sql varchar(100)
    set @sql='select * from '+@tablename
    exce(@sql)
    select  @RecordID=@@rowcount
      

  2.   

    CREATE PROCEDURE GetMaxID
    @tablename [varchar](255),
    @RecordID int output
    AS 
    declare @s nvarchar(4000)  --注意类型
    set @s='select  @RecordID=count(*) from '+@tablename
    exec sp_executesql @s,N'@RecordID  int out',@RecordID out
      

  3.   

    又答错了,改成这样
    declare @tblname varchar(255)
    declare @RecordID int
    declare @sql nvarchar(4000)
    set @tblname='syscolumns'
    set @sql='select @recordid=count(*) from '+@tblname
    exec sp_executesql @sql,
    N'@recordID int output',
    @recordid output 
    print @recordid