(
@PageNumber int,
@ScorePerPage int,--每页显示的信息条数
@PageCount int output, --查询到的总页数
@SelectCount int output,--查询倒的数据总数
@form int ,
@name varchar(20),
@trade int
)as begin
    create table #temp
    (
    rowid int,
    id varchar(50)
    )
  
    SET NOCOUNT ON 
     
     declare @SelectCommand varchar(500) 
set @SelectCommand='insert into #temp
     select row_number() over (order by produce_baseinfo.class desc) as row,
     product.id from product where product.form=@form'
必须声明标量变量 "@form"。
不能对 int 调用方法。
没有行受影响。

解决方案 »

  1.   

    set @SelectCommand='insert into #temp 
        select row_number() over (order by produce_baseinfo.class desc) as row, 
        product.id from product where product.form='+@form 参数要放到外面
      

  2.   

    在将 varchar 值 'insert into #temp
         select row_number() over (order by produce_baseinfo.class desc) as row,
         product.id from product where product.form=' 转换成数据类型 int 时失败。转换失败,
      

  3.   

    @form int 
    是int类型的
    @SelectCommand 是varchar类型肯定报错的
    set @SelectCommand='insert into #temp 
        select row_number() over (order by produce_baseinfo.class desc) as row, 
        product.id from product where product.form='+cast(@form as varchar(10)) 
      

  4.   


    什么意思?为什么不能?你拼接的SQL语句,又没加''怎么不行
      

  5.   

    有其他能数据插入#temp,实现分页查询吗?
      

  6.   

    我是按照你说的改了而已,输出结果说不能对int调用方法
      

  7.   

    insert into #temp
        select row_number() over (order by produce_baseinfo.class desc) as row,
        product.id from product where product.form=@form直接执行不行吗?@SelectCommand有什么必要?
      

  8.   

    应该是你的语句完全写错了,produce_baseinfo.class怎么凭空冒出来了?你用这个不是product表的字段对product排序?