这个存储过程报错。。哪位高手能解释一下declare @sql nvarchar(300)
declare @sqlparametters nvarchar(200)
declare @id nvarchar(20)
declare @tablename nvarchar(20)
declare @result int
set @sql=N'select @result=count(perid) from  @tablename'
set @sqlparametters=N'@result int out,@tablename varchar(20)'
set @id='perid'
set @table='perbase_ku'
exec  sp_executesql @sql,@sqlparametters,@result out,@id,@tablename
print @result

解决方案 »

  1.   

    这个存储过程报错。。哪位高手能解释一下 
    declare @sql nvarchar(300)
    declare @sqlparametters nvarchar(200)
    declare @id nvarchar(20)
    declare @tablename nvarchar(20)
    declare @result int
    set @sql=N'select @result=count(@id) from  @tablename'
    set @sqlparametters=N'@result int out,@id varchar(20),@tablename varchar(20)'
    set @id='perid'
    set @table='perbase_ku'
    exec  sp_executesql @sql,@sqlparametters,@result out,@id,@tablename
    print @result发错了这是最后的
      

  2.   

    说具体点,将sp_executesql 也粘上
      

  3.   

    1、set @table='perbase_ku' 
    --》》set @tablename='perbase_ku'
      

  4.   

    declare @sql nvarchar(300) 
    declare @sqlparametters nvarchar(200) 
    declare @id nvarchar(20) 
    declare @tablename nvarchar(20) 
    declare @result int 
    set @sql=N'select @result=count(perid) from +'@tablename --将表名写出来
    set @sqlparametters=N'@result int out,@tablename varchar(20)' 
    set @id='perid' 
    set @table='perbase_ku' 
    exec  sp_executesql @sql,@sqlparametters,@result out,@id,@tablename 
    print @result
      

  5.   

    declare @sql nvarchar(300) 
    declare @sqlparametters nvarchar(200) 
    declare @id nvarchar(20) 
    declare @tablename nvarchar(20) 
    declare @result int 
    declare @table nvarchar(20)
    set @sql=N'select @result=count(@id) from'+@tablename
    set @sqlparametters=N'@result int out,@id varchar(20),@tablename varchar(20)' 
    set @id='perid' 
    set @table='perbase_ku' 
      

  6.   


    declare @sql nvarchar(300) 
    declare @sqlparametters nvarchar(200) 
    declare @id nvarchar(20) 
    declare @tablename nvarchar(20) 
    declare @result int 
    set @tablename='perbase_ku' 
    set @sql=N'select @result=count(@id) from  '+@tablename
    set @sqlparametters=N'@result int out,@id varchar(20),@tablename varchar(20)' 
    set @id='perid' 
    exec  sp_executesql @sql,@sqlparametters,@result out,@id,@tablename 
    print @result set @table='perbase_ku' 
    是不是写错了 ..
    set @tablename='perbase_ku' ??
      

  7.   

    declare @strSql nvarchar(1000)
    declare @intCount int
    declare @strDeclare nvarchar(1000)
    set @strDeclare=N'@intCount int output'
    set @strSql=N'select @intCount=count(*) from sysobjects'
    exec sp_executeSql @strSql,@strDeclare,@intCount output
    print @intCount
      

  8.   

    declare @strSql nvarchar(1000)
    declare @intCount int
    declare @strDeclare nvarchar(1000)
    set @strDeclare=N'@intCount int output'
    set @strSql=N'select @intCount=count(*) from sysobjects'
    exec sp_executeSql @strSql,@strDeclare,@intCount output
    print @intCount